当我为 SQL 2012 创建一个 Visual Studio 数据库项目并将其与现有数据库同步(使用比较架构)时,我还同步了一个 SQL 服务器登录。Visual Studio 为登录生成以下脚本:
CREATE LOGIN [my_user] WITH PASSWORD = 'somesecurepass'
当我尝试在存在此登录名的服务器上发布生成的 SQL 时,sqlcmd 向我显示错误:
The server principal my_user already exists.
当我查看Visual Studio生成的sql脚本时,我看到很多对象被包裹在IF EXISTS语句中,但是CREATE LOGIN没有被包裹!
我试图在项目中的SQL脚本中手动包装它,但是随后项目没有构建并且指向IF的错误:
SQL70001: This statement is not recognized in this context.
现在,我如何强制 Visual Studio 使用 IF EXISTS 检查生成登录创建脚本并且不丢失同步功能?