2017-04-25 75 views
0

我們有第三方應用程序,其中用戶從Excel電子表格中讀取數據的同時手動輸入一條記錄。確定從應用程序中運行的存儲過程

我被要求啓用一種將數據從Excel電子表格上載到SQL Server數據庫的方法。這將節省大量時間,並防止在手動輸入數據時出錯。我之前已經完成了這種類型的工作,但使用了內部程序。我需要找到單擊「保存」按鈕時運行的進程。有沒有一種方法來確定這個或類似的東西(比如,除了我已經知道的那些參與者之外,究竟涉及哪些表\觸發器)?

回答

0

要發現數據庫活動的最好的辦法是設置應用程序的測試副本的測試數據庫中僅有1工作的人。然後啓動一個SQL Profiler跟蹤並記錄單擊Save按鈕後數據庫中發生的情況。

這就是說,如果你沒有全面瞭解你需要什麼,請不要感到驚訝。在發送到數據庫之前,這不會顯示客戶端應用程序中發生的任何數據。逆向工程應用程序可能與正常數據輸入涉及的手動工作一樣容易出錯。最重要的是,不能保證該過程對於應用程序的更新版本將保持不變。

0

如果您沒有訪問原始源代碼,那麼你就可以進入這樣的事情在SSMS,看看哪些查詢最近已經通過特定的機器(替代你的主機名,在2號線運行,然後步行通過這個過程來了解發生了什麼)。這是從SO現有的答案改編爲單個主機工作,但我不知道如何跟蹤它以給予適當的信貸...

declare @host varchar(50) 
set @host='MyComputerName' 


SELECT TEXT 
FROM sys.dm_exec_connections 
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) 
WHERE session_id in 
(SELECT des.session_id FROM sys.dm_exec_sessions des WHERE des.is_user_process = 1 AND host_name = @host);