我正在尝试使用 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”后的未闭合引号。
该错误似乎出现在第二个 create function 语句上,而不是第一个,这是没有意义的,因为它们的编写方式相同。
我正在使用 SQL Server 2012 Enterprise SP1。
提前致谢!