从SSMS运行时,SQL脚本运行正常,但在使用sqlcmd

时间:2016-08-04 18:34:54

标签: ssms dynamic-sql sqlcmd

所以我有一个脚本用于更新开发人员框SQL节点上的用户。它在SSMS中运行良好,但是当我从sql cmd运行它时,我得到一个"不正确的语法..."这一行出错:

EXEC('Drop USER "' + @name + '"')

@name正确地替换为我试图删除的用户名,它会在语法上引发错误。

1 个答案:

答案 0 :(得分:0)

想出来。 sqlcmd要么将双引号解释为单引号,要么完全忽略它们。我认为前者,因为如果我试图运行:

DROP USER 'R715998-W10\MUD-CCTMRE.appool'

DROP USER "R715998-W10\MUD-CCTMRE.appool"

我得到完全相同的错误。

切掉方括号的双引号修复它:

EXEC('Drop USER [' + @name + ']')