代码之家  ›  专栏  ›  技术社区  ›  Curtis stepd

循环服务器上的数据库,并更新数据

  •  5
  • Curtis stepd  · 技术社区  · 14 年前

    我有一个有多个数据库的服务器。我需要遍历这些数据库,并在每个数据库的一个记录、一个表中更改一个值。如何做到这一点?

    3 回复  |  直到 14 年前
        1
  •  8
  •   Andomar    14 年前

    您可以使用动态SQL:

    declare @query varchar(max)
    set @query = ''
    
    select  @query = @query + 'UPDATE ' + name + 
                '.dbo.YourTable set value = 1 where id = 2; '
    from    master.sys.databases
    where   name <> 'master'
    
    exec (@query)
    
        2
  •  13
  •   rlb.usa    14 年前
    EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999  '
    
        3
  •  3
  •   Chris Diver    14 年前

    有一个未记录的存储过程sp\u MSForEachDB,它将为每个数据库执行SQL。

    EXEC sp_msforeachdb 'PRINT ''?'''