sp_MSforeeachdb を使用してマルチデータベース クエリを作成しようとしていますが、実行時にエラーが発生します。SQL SSMS には表示可能な構文エラーがないため、これが発生しているかどうかはわかりません
これが私が書いたSQLです:
EXEC sp_MSforeachdb N'IF ''?'' in (''db1'',''db2'')
BEGIN
PRINT ''Use [?]''
PRINT ''DROP FUNCTION uf_EncryptAES;''
PRINT ''GO''
PRINT ''DROP FUNCTION uf_DecryptAES;''
PRINT ''GO''
PRINT ''DROP ASSEMBLY MVE_Crypt;''
PRINT ''GO''
PRINT ''CREATE ASSEMBLY MVE_Crypt from ''''C:\MVE_Crypt.dll'''' WITH PERMISSION_SET = unsafe;''
PRINT ''GO''
PRINT ''CREATE FUNCTION uf_EncryptAES(@input nvarchar(4000),@key nvarchar(4000)) returns nvarchar(4000) EXTERNAL NAME MVE_Crypt.[MVE_Crypt.MVE_Crypt].EncryptAES;''
PRINT ''GO''
PRINT ''CREATE FUNCTION uf_DecryptAES(@input nvarchar(4000),@key nvarchar(4000)) returns nvarchar(4000) EXTERNAL NAME MVE_Crypt.[MVE_Crypt.MVE_Crypt].DecryptAES;''
PRINT ''GO''
END'
これを実行すると、次のエラーが表示されます。
メッセージ 105、レベル 15、状態 1、行 14 文字列 'CREATE' の後の閉じられていない引用符。
エラーは最初のステートメントではなく 2 番目の create function ステートメントにあるように見えますが、同じように記述されているため意味がありません。
SQL Server 2012 Enterprise SP1 を使用しています。
前もって感謝します!