2015-07-10 60 views
1

Here is the link to the solution I found and used在這個問題中提供的代碼應該完全解決我的情況。更新許多表的列值,只有1行受影響

但是,只有1行受到影響。我想知道這是否意味着我應該添加一個循環或其他條件以使其遍歷所有表格。

Declare @ColName as nVarchar(100), @NewValue as nVarchar(50) 
    Set @ColName = 'test_column' -- 'your col name' 
    Set @NewValue = getDate() -- your date time value 
    Select 'Update ' + TABLE_NAME + ' set ' + COLUMN_NAME + ' = ''' + @NewValue + '''' From INFORMATION_SCHEMA.COLUMNS Where column_name = 'test_column' 
+2

您需要將您的代碼添加到問題中。不要只是指向我們的鏈接,並要求我們猜測。 – Yatrix

+0

謝謝你的建議。我只是更新了代碼。希望它能讓任何人看到這一點變得輕鬆。 – user3546425

回答

1

您一次只能更新一個表格。您可以更新同一個表或多個列中的多個行,但不能更新單個更新中的多個表。你需要一個循環來迭代每個更新表。

Select 'UPDATE ' + TABLE_NAME + ' SET CreatedDateTime = ''<<New Value>>'' ' AS SqlStatement INTO #T 
From INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'CreatedDateTime' 

WHILE EXISTS (SELECT * FROM #T) BEGIN 
    DECLARE @Sql VARCHAR(4000) = (SELECT TOP 1 SqlStatement FROM #T) 
    EXEC (@Sql) 
    DELETE #T WHERE SqlStatement = @Sql 
END 
+0

如果它解決了您的問題,如果它幫助您並接受它,請隨時提供答案。這有助於他人知道哪些答案可能對您的問題有所幫助。它也增加了你的聲譽。 –

相關問題