Wählen Sie alle datasätze aus, die nach einem bestimmten date in allen Tabellen in einem SQL server erstellt wurden

Ich möchte eine list aller neuen oder geänderten datasätze, die nach einem bestimmten date in allen Tabellen in einer SQL server-database erstellt wurden.

Ich verwende SQL server 2005 und ssms.

Gibt es eine Möglichkeit, dies mit einer Abfrage oder einem anderen Tool zu tun?

Wie könnte ich das für einen Tisch machen?

Angenommen, alle Tabellen haben eine ModifiedDate date Spalte, können Sie dann die undokumentierten sp_msforeachtable proc verwenden

 sp_msforeachtable 'select ''?'',count(*) from ? where ModifiedDate > ''20100101''' 

Passen Sie einfach den datesbereich an, ich benutze auch count (*), weil ich bezweifle, dass Sie Millionen von Zeilen zurückkehren möchten

Wenn du keine Spalte hast, dann bist du aus Glück, oder wenn die Spalte in jeder Tabelle anders benannt ist, dann musst du dynamisches sql zusammen mit information_schema.columns und information_schema.tables , um diese Abfrage zu konstruieren

Es gibt nichts in SQL server, wo Sie diese Informationen erhalten können. Wie @JNK angegeben hat, musst du das in dein databasedesign aufbuild. Und Sie müssen die Lösung für jede Tabelle erstellen, indem Sie das Erstellungsdatum als Spalte hinzufügen. Dann können Sie SQL verwenden, um die Informationen zu erfassen.