2017-08-25 8 views
1

夕方に挿入されたストアドプロシージャを、保管 T-SQL - テーブル内の/更新されたレコード

私は大きなパッケージを含む巨大なSSISソリューションは、すべてのサーバー間など、場所にデータをプッシュし、組織内で開始している

。それを開発した人が去りました。私はそれを理解してデバッグする作業をしました。

私は非常に広範なDFDを作成して、ストアドプロシージャ、テーブル、ビュー間の関係をマップしました私がそれに挿入されたプロセスを決定することは不可能であることを発見したいくつかのテーブルがあります/それを更新しました。

私がしたいのは、テーブルが書き込まれるたびにデフォルト値で気になるテーブルにいくつかのフィールドを作成することです。

  • フィールド1、
  • フィールド2、
  • 等...
  • 'DateTimeの録音を追加しました'
  • '第一は、レコードを挿入プロセス'、
  • 'のDateTimeのレコード最終更新日'
  • 'レコードが最後に更新されたプロセス'

プロセスの値は 'Server.Database.schema.UspName'の形式になります

私はsysprocessを調べ、オンラインで検索して解決策を見つけることができません。何か案は?事前に

おかげ{SSMS 2014を使用して}

+0

注意 - 列を追加または変更すると、他のプロセスが失敗する可能性があります。 「select *」または「insert table select」の使用法が表示された場合(つまり、挿入文で列リストを指定しない場合)、悪いことが起こります。特定のテーブル名に対してフィルタ処理されたサーバー側のトレースは、代替方法です。 – SMor

+0

ありがとうSMor、私はプロセスを把握するために、DEV環境を使用しています。私はそれが何をしているのか理解できたら、プロセスを簡素化するために完全に書き直すつもりです。将来のトラブルシューティングのためにこれらの列を追加したいと考えていました。 – SliderSteve

答えて

0

は、以下のリンクを見てみましょう。トリガを介して呼び出し元インスタンスに関する情報を取得する方法について説明します。 How to get the stored procedure name from a trigger when an update operation was performed?

+0

同僚はトリガーを提案しましたが、パフォーマンスの低下が懸念されました。私はこれが1回限りのエラーチェックのためにはうまくいくと思いますが、私は各テーブルにコードを追加してそこに残すことを望んでいました。 – SliderSteve

+0

私はレコードを最初に挿入するuspのために働くために以下を得ることができましたが、レコードが更新されたときには動作しません:(object_name(@@ procid)) – SliderSteve

関連する問題