簡體   English   中英

SQL Server DDL更改(列名,類型)

[英]SQL Server DDL changes (column names, types)

我需要審核對數據庫所做的DDL更改。 這些更改需要在以后的其他許多數據庫中復制。 我在這里發現,可以啟用DDL觸發器來跟蹤DDL活動,這對於create tabledrop table操作非常有用,因為該觸發器獲取已執行的T-SQL,並且我可以很高興地將其存儲在某個地方並簡單地執行稍后在其他服務器上。

我遇到的問題是alter操作:從Management Studio更改列名稱時,產生的事件不包含有關列的任何信息! 它只是說表已鎖定...而且,如果一次更改許多列(例如,列foo => oof ,還有列bar => rab ),則僅觸發一次事件!

我可憐的人的解決方案是在更改操作之前和之后都有一個表來存儲將要更改的表的結構。 這樣,我可以比較這兩種結構並弄清楚哪列發生了什么。

但是在我這樣做之前,我想知道是否可以使用我忽略的SQL Server其他功能來實現它,或者也許有更好的方法。 您將如何處理?

有一種產品可以做到這一點(我寫過)。
它監視包含ddl更改的腳本,編寫腳本的人員以及更改的時間以及對性能的影響,它使您能夠輕松地將它們復制為一個部署腳本。 對於您的要求,免費版本就足夠了。
http://www.seracode.com/

SQL Server中沒有滿足您需要的特殊功能。 您可以使用觸發器,但是它們需要大量的T-SQL編碼才能正常運行。 快速解決方案將是一些第三方工具,但它們並非免費的。 請查看有關第三方工具的此答案https://stackoverflow.com/a/18850705/2808398

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM