我在SQL Server 2000中有超过100个表,每个表中具有相同的列名。现在我想使用SQL更新语句一次更新100个表中的值。
我该怎么做?我尝试谷歌和stackoverflow但不是真的帮助。
非常感谢
答案 0 :(得分:0)
为数据库中的所有表创建游标,并使用动态查询执行。 这个脚本将帮助你做到这一点。
--USE [Your DB]
--GO
DECLARE @tableName VARCHAR(100)
DECLARE @sqlQuery VARCHAR(MAX)
DECLARE curTable CURSOR FOR SELECT name FROM sys.objects WHERE type_desc = 'USER_TABLE' AND name NOT IN ('sysdiagrams')
OPEN curTable
FETCH NEXT FROM curTable INTO @tableName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @sqlQuery = 'UPDATE ' + @tableName + 'SET [YourCol1] = [YourVal1], [YourCol2] = [YourVal2] ...'
PRINT @sqlQuery
EXECUTE sp_executesql @sqlQuery
FETCH NEXT FROM curTable INTO @tableName
END
CLOSE curTable
DEALLOCATE curTable