數據庫是如何以可以在其上執行DML的方式對其表進行枚舉的?我已經從一個單一的語句完成的檢索表名:如何枚舉SQL Server數據庫中的表並執行DML
SELECT TABLE_NAME FROM MyDB.INFORMATION_SCHEMA.TABLES;
我大部分的表有一個特殊的領域使用相同的名字,我想將它們全部更新,通過表枚舉值相同。數據庫的結構使我無法使用參照完整性進行更新傳播,這是我手動更新的特殊情況。我不知道如何遍歷並更新其中的公共字段,併爲沒有SpecialField的表指定try-catch塊。如:
declare @i int =0;
While(@i < MyDB.INFORMATION_SCHEMA.TABLES.length)
begin
begin try
Update MyDB.INFORMATION_SCHEMA.TABLES[i] set SpecialField= SomeValue;
end try
begin catch end catch
set @[email protected]+1;
end
謝謝。
您可以使用MyDB.INFORMATION_SCHEMA.COLUMNS,把一個WHERE子句列名。那樣你就不需要嘗試,對吧? – Martao