在多个数据库上运行sql update语句

时间:2012-08-16 13:53:48

标签: sql sql-server-2008

我有以下SQL更新:

UPDATE [Shop_Benelux_2012].[dbo].[StringResource]
   SET [ConfigValue] = ''
 WHERE [Name] = 'default.aspx.1'
GO

我需要运行此语句的10个数据库。

我的数据库看起来像这样:

  • Shop_DE_2012
  • Shop_FR_2012 ...

如何在所有数据库上运行该语句而无需在管理工作室中的每个数据库上手动运行它?

2 个答案:

答案 0 :(得分:4)

快速而肮脏

EXEC sp_MSForEachDB '
USE ?
IF DB_NAME() LIKE ''Shop%''
   UPDATE [dbo].[StringResource]
   SET [ConfigValue] = ''''
 WHERE [Name] = ''default.aspx.1''
'

注意:我使用2部分名称,没有“Shop_Benelux_2012”

答案 1 :(得分:0)

我有一个视图,它将所有数据库包装在一起,允许我通过一个查询从中选择,插入,更新或删除任何数据库。这些称为分区视图。你会想读这个。

http://technet.microsoft.com/en-us/library/ms190019(v=sql.105).aspx