更新许多表的列值,只有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'
答
您一次只能更新一个表格。您可以更新同一个表或多个列中的多个行,但不能更新单个更新中的多个表。你需要一个循环来迭代每个更新表。
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
如果它解决了您的问题,如果它帮助您并接受它,请随时提供答案。这有助于他人知道哪些答案可能对您的问题有所帮助。它也增加了你的声誉。 –
您需要将您的代码添加到问题中。不要只是指向我们的链接,并要求我们猜测。 – Yatrix
谢谢你的建议。我只是更新了代码。希望它能让任何人看到这一点变得轻松。 – user3546425