Sql server 2012 数据库项目中的SQL70527错误
我有一个基于现有数据库创建的数据库项目。它还添加了创建用户的脚本。其中一个脚本是=>Sql server 2012 数据库项目中的SQL70527错误,sql-server-2012,database-project,Sql Server 2012,Database Project,我有一个基于现有数据库创建的数据库项目。它还添加了创建用户的脚本。其中一个脚本是=> CREATE USER [JOOS_NT\Indigo.Development] FOR LOGIN [JOOS_NT\Indigo.Dev.svc]; 这个脚本在我的数据库上运行良好。但是在我的数据库项目中,这个脚本在我构建它时抛出了一个错误。错误是: "SQL70527: 'JOOS_NT\Indigo.Development' is not a valid name because it contain
CREATE USER [JOOS_NT\Indigo.Development] FOR LOGIN [JOOS_NT\Indigo.Dev.svc];
这个脚本在我的数据库上运行良好。但是在我的数据库项目中,这个脚本在我构建它时抛出了一个错误。错误是:
"SQL70527: 'JOOS_NT\Indigo.Development' is not a valid name because it contains characters that are not valid."
[JOOS\u NT\Indigo.Development]中的\似乎是不允许的。但是,在数据库本身上,我可以运行查询,并且运行良好。如果我将其更改为[JOOS\u NT/Indigo.Development],则不会出现错误,但在将项目中的脚本与现有数据库进行比较时,它会删除用户[JOOS\u NT\Indigo.Development],并将其替换为[JOOS\u NT/Indigo.Development]
我错过了什么?为一个展望未来的人回答 在数据库项目中,如果用户名中包含“\”字符,则登录名应与用户名匹配 因为,这不起作用:
CREATE USER [JOOS_NT\Indigo.Development] FOR LOGIN [JOOS_NT\Indigo.Dev.svc];
但这将:
CREATE USER [JOOS_NT\Indigo.Development] FOR LOGIN [JOOS_NT\Indigo.Development];
或
我不确定这是预期的行为还是bug。这是出于设计。核心问题是,在基于windows用户登录的“创建登录用户”中,如果用户使用的是域名,则该域名必须与登录名的域名+登录名匹配。在MSDN上看到这一点Ok,当我切换到脚本以创建用户[JOOS\u NT\Indigo.Dev.svc]登录[JOOS\u NT\Indigo.Dev.svc]时;它很好用。但是为什么它不能与原始脚本一起工作呢?
CREATE USER [JOOS_NT\Indigo.Dev.svc] FOR LOGIN [JOOS_NT\Indigo.Dev.svc];