我需要審覈對數據庫所做的DDL更改。這些更改需要在以後的許多其他數據庫中進行復制。我發現here可以啓用DDL觸發器來跟蹤DDL活動,並且這對於create table
和drop table
操作非常有用,因爲觸發器獲取了已執行的T-SQL,並且我可以愉快地將它存儲在某個地方,並簡單地執行它稍後的其他服務器。SQL Server DDL更改(列名,類型)
我遇到的問題是alter
操作:當從Management Studio更改列名稱時,生成的事件不包含有關列的任何信息!它只是說,該表被鎖......更重要的是,如果有很多列在一次改變(比如,列富 =>OOF,而且,列酒吧 =>RAB)事件被觸發只有一次!
我的窮人的解決方案是在alter操作之前和之後有一個表來存儲將要改變的表的結構。這樣,我可以比較兩種結構並找出發生在哪一列上的事情。
但之前我這樣做,我想知道是否有可能使用SQL Server的其他功能,我忽略了,或者有更好的方法。你會怎麼做呢?
「http://technet.microsoft.com/en-us/library/bb522542(v=sql.105).aspx」這裏你會發現所有的ddl事件你可以跟蹤。如果從SSMS發生更改,則無法在DDL觸發器中進行控制。而是編寫服務器級別的觸發器來僅允許使用t-sql命令進行更改。 –
該鏈接似乎已被破壞...我恐怕不能禁止用戶修改SSMS中的表格...... – ferc