.sqlproj发布脚本依赖不存在的域用户,有无可行规避方案?
无需修改SQL脚本的解决方案
方法1:预创建同名SQL登录
在执行发布脚本前,手动在本地SQL Server实例创建一个和域用户完全同名的SQL认证登录。脚本执行CREATE USER语句时,会直接关联已存在的登录,不再尝试查找域用户:
CREATE LOGIN [SOMEDOMAIN\SOME-USER] WITH PASSWORD = 'YourStrongPassword123!', CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF;
执行完上述语句后,再运行发布脚本即可绕过域用户不存在的错误。
方法2:临时启用错误忽略模式
在执行发布脚本前,先运行以下SQL语句关闭严格事务终止规则,让单个错误不中断整个脚本的执行流程:
SET XACT_ABORT OFF; SET ANSI_WARNINGS OFF;
⚠️ 注意:这种方法会忽略所有非致命错误,仅适用于确认该域用户错误不影响核心功能的场景,避免掩盖其他潜在问题。
方法3:调整SQL项目发布配置(无需修改SQL代码)
打开.sqlproj项目的发布配置文件(.publish.xml),进入高级发布设置,在“对象类型”选项中取消勾选“用户”。重新生成发布脚本时,将自动剔除创建域用户的语句,从源头避免错误。
内容的提问来源于stack exchange,提问作者ruffin
相关产品推荐
相关产品推荐

