一次更新多表中的语句值

时间:2017-06-02 02:45:46

标签: sql-server

我在SQL Server 2000中有超过100个表,每个表中具有相同的列名。现在我想使用SQL更新语句一次更新100个表中的值。

我该怎么做?我尝试谷歌和stackoverflow但不是真的帮助。

非常感谢

1 个答案:

答案 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