我需要知道哪些表是使用更改跟蹤在數據庫中更改的表。有沒有任何表,我可以找到最後更新的表與提交ID? 我可以使用select * from CHANGETABLE(CHANGES taitemnames,25262)ct order by sys_change_version desc
,但這需要我爲每個表運行一次以檢查更改。對所有表使用CHANGETABLE()
0
A
回答
0
我不熟悉此功能,但如果你的問題是如何使用CHANGETABLE()
然後查詢多個表我假設你可以在所有的表名使用存儲過程中循環,並使用動態SQL運行查詢:
declare
@sql nvarchar(max),
@parameters nvarchar(max),
@TableName nvarchar(128),
@Version bigint
set @Version = CHANGE_TRACKING_CURRENT_VERSION()
declare Tables cursor local fast_forward
for
select name from sys.tables where... -- add conditions here if necessary
open Tables
fetch next from Tables into @TableName
while @@fetch_status = 0
begin
set @sql = N'select * from CHANGETABLE(CHANGES ' + quotename(@TableName) + ', @LastVersion)ct order by sys_change_version desc'
set @parameters = N'@LastVersion bigint'
exec sp_executesql @sql, @parameters, @LastVersion = @Version
fetch next from Tables into @TableName
end
close Tables
deallocate Tables
您可以將其與動態SQL中的INSERT
結合起來,將結果寫入表中,然後查詢報表和分析。
0
嘗試sys.CHANGE_TRACKING_TABLES
(記錄on MSDN here)。
您將不得不使用OBJECT_NAME
從第一列中獲取表名稱。
相關問題
- 1. 從CHANGETABLE中刪除
- 2. findind所有使用。所有對其中
- 3. 要求對所有MySQL表
- 4. 列表中的所有用戶對象
- 5. 如何從CHANGETABLE中刪除一行?
- 6. changetable在觸發器中沒有電流變化?
- 7. 使用表達式樹比較對象的所有屬性
- 8. 對列/ pandas.series使用pd.to_datetime列表格式的所有行
- 9. 使用Jsoup獲取表單中的所有名稱/值對
- 10. Java:使用鄰接表來計算所有對最短路徑?
- 11. 對所有內容使用StructuralComparisons類
- 12. 對所有子文件夾使用IndexIgnore
- 13. WebKit.NET - 對所有請求使用IE cookie
- 14. 對所有型號標識使用guid
- 15. 使用Unity攔截所有對IMyInterface.SomeMethod
- 16. 對所有圖像格式使用BmpBitmapEncoder
- 17. 對所有屏幕尺寸使用AutoLayout
- 18. 對所有商標符號使用.replace()
- 19. REGEX:使所有URL絕對
- 20. 所有使用
- 21. 使用Tablediff比較所有表
- 22. 使用MySQL Workbench搜索所有表
- 23. 顯示所有列表項 - 使用jQuery
- 24. 優化所有MySQL表使用的MyISAM
- 25. 如何使用Linq返回列表中所有對象總和的對象?
- 26. 在所有數據庫的所有對象中查找表名
- 27. 用對象填充數組列表使所有元素在列表中相同
- 28. 使用LINQ to合併的對象的方法以列表的所有列表
- 29. 使用LINQ獲取具有多對多關係的子表的所有記錄
- 30. 使用Lambda表達式查找具有匹配標識的所有對象