Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2012 数据库项目中的SQL70527错误_Sql Server 2012_Database Project - Fatal编程技术网

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];