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 + ']')