私は MS SQL Server 2008 を使用しており、SQL ジョブによって毎日午前 6 時に挿入されるデータを含む SQL テーブルがあります。私が抱えている問題は、一部のデータがジョブに個別に挿入されており、このデータがいつ追加されたかを知る必要があることです。
これを表示するために実行できるクエリはありますか?
私は MS SQL Server 2008 を使用しており、SQL ジョブによって毎日午前 6 時に挿入されるデータを含む SQL テーブルがあります。私が抱えている問題は、一部のデータがジョブに個別に挿入されており、このデータがいつ追加されたかを知る必要があることです。
これを表示するために実行できるクエリはありますか?
簡単な答えは NO だと思います。事後に戻って、いつ行が挿入されたかを知るための魔法のアドホック SQL クエリはありません。
行がいつ挿入されたかを知りたい場合、最も簡単な方法は、行が挿入されたときに日付/時刻を自動的に入力するデフォルト値 (getDate() など) を使用して日付またはタイムスタンプ フィールドを追加することです。
もちろん、行の挿入、更新、削除などを追跡できる SQL ログも利用できますが、それらにはセットアップとメンテナンスが必要です。
3 番目のオプションは、データを挿入するプログラムにログを記録させることです。
テーブルに日付フィールドを追加します。のデフォルト値を与えることができますGETDATE()
それからORDER BY
その分野。
SELECT Column1, Column2, NewDateColumn
FROM YourTable
ORDER BY NewDateColumn
おそらく、SQL CREATE TRIGGERを調べて、データがいつ追加されるかを知るロジックを追加し、その情報を別のテーブルに記録して、さらにアクションを実行する必要があります。詳細がなければ、それ以上のことは言えません。
既に挿入されているデータを参照しているため、既定値が の datetime 列が既にない限り、答えはいいえですGETDATE()
。イベントが発生した後に管理できる最善の方法は、一連の行を調べて、それが 2 つの既知の時間の間にあったことを判断することです。