1

次の SQL 更新があります。

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

このステートメントを実行する必要があるデータベースが 10 個あります。

私のDBは次のようになります。

  • Shop_DE_2012
  • Shop_FR_2012 ...

管理スタジオの各データベースで手動で実行せずに、すべてのデータベースでステートメントを実行するにはどうすればよいですか?

4

2 に答える 2

4

速くて汚い

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

注:「Shop_Benelux_2012」を使用せずに、2つの部分からなる名前を使用しています

于 2012-08-16T13:59:29.263 に答える
0

すべてのデータベースをまとめてラップするビューがあり、1つのクエリでデータベースのいずれかを選択、挿入、更新、または削除できます。これらは、パーティションビューと呼ばれます。あなたはこれを読みたいと思うでしょう。

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

于 2012-08-16T13:58:10.073 に答える