2016-05-11 3 views
0

私の現在のプロジェクトではデータベースの移行は使用されていないため、変更が生じた場合はマニュアルで確認されます。最後のn日間に新しいデータがあるテーブルを見つけることはできますか?

最後のn日間(たとえば7日間)に作成された新しい行がデータベース内のどのテーブルにあるかを調べることはできますか?

ありがとうございました!

+0

作成するすべてのテーブル内の不履行 'CreatedAt'日付列を含めます。 –

+0

バイナリログが有効になっている場合は、INSERT、UPDATE、DELETEステートメントをgrepすることができます。 –

+0

@GordonLinoff各テーブルにCreatedAtカラムがありますが、既存のテーブルを確認する方法はわかりません。新しいCreatedAt、そして可能なすべてのテーブルをループする必要があるかどうか、またはすでに必要なものを実行しているinformation_schema magicコマンドがいくつかありますか? – kiradotee

答えて

0

新たに挿入された1の値をテーブルの値にするために挿入するトリガーを作成するか、またはその前に挿入される0 ....その新しい値が追加されたことを示すフラグ。

id  StudentName flag 
1  Frank   0 
2  Andrew   1 


insert into tablename(id,StudentName,flag) Values(3,'Alice',1) 

は常に1で旗を作ることを知っている:あなたがテーブルに挿入するたびにあなたが1つの 例で、この列を追加するように更新ステートメントは...彼らはすべてが0の値をとるであることを確認しますそれは新しい記録であり、最近追加されたものです。

update tablename set flag = 0 

この文章は、すべてが前に挿入されていることを確認するためのものであり、新しいものではありません。

0

新しい行があったときに、テーブルを更新

テーブルを作成しますTableUpdatedRrecord(TABLE_NAMEのvarchar型(最大)、旗int型、TableCreatedDate日時、更新日時)

0

まずレコードを持つテーブルを作成したときに示し、共通のテーブルを作成します。表は

TRIGGEを作成するには、新しい挿入していたときにテーブルに挿入すること

Create table TableUpdatedRrecord (Table_Name varchar(max),Flag INT,TableCreatedDate DateTime,Modified DatetIME) 今すぐに実行される各テーブルにトリガーを作成します。 dbo.TableName ON R TriggerName INSERT AS が DECLARE @CreatedDate日時 セット@ CreatedDateに=(SYS.TABLESからt.create_dateを選択トン名= 'テーブル名')を開始した後 INSERT INTO TableUpdatedRrecord (TABLE_NAME、[フラグ]、[TableCreatedDate]、[]修正) VALUES (CreatedDateに 、のGetDate(@ 'テーブル名' 、1 、)) END

関連する問題