2012-08-07 52 views
0

我有一個包含40個表格的數據庫。所以我想找到在特定日期修改的表,如知道在SQL Server 2005的數據庫中的特定日期修改了多少表格

  • 在我的數據庫中20 Aug 2011上修改了多少個表?

UPDATE
請注意,我需要的表名,而不是記錄ID

一樣,其內容上20 Aug 2011

+4

你的意思是在*結構方面修改*的表,或者你的意思是修改的*內容*? – 2012-08-07 06:21:07

+0

@Damien_The_Unbeliever在內容上... – 2012-08-07 06:48:53

+0

你應該改變你問的問題。不是'修改了多少個表',而是'我想要某個特定日期的每個修改表的名稱' – Yaroslav 2012-08-07 06:54:49

回答

0

進行了修改,編輯表的名稱: @ Damien_The_Unbeliever對他的評論有一個很好的觀點。我的答案只與表結構有關,而不是內部數據。如果您想驗證數據何時發生變化,那麼您需要添加一個updated_date列,以便查詢它並查找修改時間。

使用目錄視圖,特別是sys.tables

DECLARE @auxDate datetime = '20120820 00:00:00' 
SELECT tbl.name 
    FROM sys.tables tbl 
WHERE modify_date = @auxDate 

修改顯示的表名。我有WHERE modify_date >= @auxDate但你要修改的某一天的表名,因此更新了WHERE子句分別用一天

+0

這會給你所有在特定日期後修改的表格,而不是特定的日期。 – AnandPhadke 2012-08-07 06:34:25

+0

AFAIK,在添加或更改表列時更新sys.tables。表格數據更改時確定它已更新嗎? – danish 2012-08-07 06:58:42

+0

@Damien_The_Unbeliever已經問過它了。我回答了關於桌子結構的想法。 – Yaroslav 2012-08-07 07:07:05

-1

IN數據修改的情況下,

Alter table tablename add datemodified timestamp 

select count(*) from tablename where datemodified = @yourdate 
相關問題