2017-04-25 4 views
0

ユーザーがExcelスプレッドシートからデータを読み取るときに、1レコードずつ手動でデータを入力するサードパーティアプリケーションがあります。アプリケーションから実行されるストアドプロシージャの決定

ExcelスプレッドシートからSQL Serverデータベースにデータをアップロードする方法を有効にするように求められました。これにより、時間を大幅に節約し、手動でデータを入力する際の間違いを防ぐことができます。これまで私はこのタイプの仕事を社内プログラムでやってきました。私は保存ボタンがクリックされたときに実行されるプロセスを見つける必要があります。これは何か類似しているかどうかを判断する方法はありますか(私が既に知っているもの以外にどのテーブル\トリガーが含まれているか)。

答えて

0

データベースのアクティビティを検出するには、アプリケーションのテストコピーとテストデータベースをセットアップして、1人しか働かないようにすることをお勧めします。その後、SQLプロファイラトレースを開始し、[保存]ボタンをクリックした後にデータベース内で何が起こるかを記録します。

あなたが必要とするものを完全に把握していないと、驚くことはありません。これにより、データベースに送信される前にクライアントアプリケーション内のデータに何も起きることはありません。アプリケーションのリバースエンジニアリングは、通常のデータ入力に伴う手作業と同じようにエラーが発生しやすくなります。その上に、更新されたバージョンのアプリケーションでそのプロセスが同じままであるという保証はありません。

0

元のソースコードにアクセスできない場合は、SSMSで次のように入力して、特定のマシンで最近実行されたクエリを確認できます(2行目のホスト名を置き換えて何が起こっているかについてのかなり良い考えを得るためのプロセスを通じて)。これは、既存ホストからの回答であったため、単一のホストで動作するように修正されましたが、適切なクレジットを得るためにトラッキングする方法がわかりません。

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); 
関連する問題