13
我需要爲數據庫中的所有40個用戶表添加一個刪除標誌列。我可以編寫一個腳本來循環sys.tables,但我想我會檢查並查看是否有人有更好的解決方案,或者爲此場景預先創建的sql。在t-sql的所有用戶表中添加一列
我需要爲數據庫中的所有40個用戶表添加一個刪除標誌列。我可以編寫一個腳本來循環sys.tables,但我想我會檢查並查看是否有人有更好的解決方案,或者爲此場景預先創建的sql。在t-sql的所有用戶表中添加一列
有一個無證但衆所周知的存儲過程sp_msforeachtable:
exec sp_msforeachtable 'alter table ? add flag bit not null default 0';
不,這是一個手動循環。
或者你可以建立當然是一個SQL語句...
SELECT
'ALTER TABLE ' + T.name + ' ADD foo int NULL'
FROM
sys.tables AS T
WHERE
T.is_ms_shipped = 0
或者無證
EXEC sys.sp_MSforeachtable 'ALTER TABLE ? ADD foo int NULL'
+1,但... seraphym是要求一種方式來刪除列。雖然你的陳述很容易被重寫,但是所有表格中的目標字段的名稱必須是統一的。 – 2009-11-22 20:18:03
psasik,seraphym希望爲每個表添加一個名爲'delete'的列,而不是從每個表中刪除一列。 – 2009-11-22 20:21:44
很酷,感謝您的幫助! – seraphym 2009-11-22 21:29:49