我有一個包含40個表格的數據庫。所以我想找到在特定日期修改的表,如知道在SQL Server 2005的數據庫中的特定日期修改了多少表格
- 在我的數據庫中
20 Aug 2011
上修改了多少個表?
UPDATE
請注意,我需要的表名,而不是記錄ID
一樣,其內容上20 Aug 2011
我有一個包含40個表格的數據庫。所以我想找到在特定日期修改的表,如知道在SQL Server 2005的數據庫中的特定日期修改了多少表格
20 Aug 2011
上修改了多少個表?UPDATE
請注意,我需要的表名,而不是記錄ID
一樣,其內容上20 Aug 2011
進行了修改,編輯表的名稱: @ 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
子句分別用一天
這會給你所有在特定日期後修改的表格,而不是特定的日期。 – AnandPhadke 2012-08-07 06:34:25
AFAIK,在添加或更改表列時更新sys.tables。表格數據更改時確定它已更新嗎? – danish 2012-08-07 06:58:42
@Damien_The_Unbeliever已經問過它了。我回答了關於桌子結構的想法。 – Yaroslav 2012-08-07 07:07:05
IN數據修改的情況下,
Alter table tablename add datemodified timestamp
select count(*) from tablename where datemodified = @yourdate
你的意思是在*結構方面修改*的表,或者你的意思是修改的*內容*? – 2012-08-07 06:21:07
@Damien_The_Unbeliever在內容上... – 2012-08-07 06:48:53
你應該改變你問的問題。不是'修改了多少個表',而是'我想要某個特定日期的每個修改表的名稱' – Yaroslav 2012-08-07 06:54:49