SQL脚本从SSMS运行时工作正常,但在与sqlcmd一起运行时语法检查失败

问题描述:

所以我有一个脚本用于更新开发人员框SQL节点上的用户。它工作在SSMS罚款,但是当我从SQL CMD运行它,我得到一个“附近有语法错误...”错误在这条线:SQL脚本从SSMS运行时工作正常,但在与sqlcmd一起运行时语法检查失败

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

@name正确地与用户的名称所取代我试图放弃,它在语法上抛出一个错误。

想通了。 sqlcmd是将双引号解释为单引号或完全忽略它们。我认为是前者,因为如果我尝试运行两种:

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

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

我得到确切同样的错误。

交换出去方括号中的双引号固定它:

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