数据库项目中的SQL70527错误

时间:2013-12-06 13:22:46

标签: 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 contains characters that are not valid."

似乎" \"在[JOOS_NT\Indigo.Development]中是不允许的。但是在数据库本身我可以运行查询,它工作正常。如果我将其更改为[JOOS_NT/Indigo.Development]我没有收到错误,但在将项目中的脚本与现有数据库进行比较时,会删除用户([JOOS_NT\Indigo.Development])并将其替换为({ [JOOS_NT/Indigo.Development]

我错过了什么?

2 个答案:

答案 0 :(得分:0)

回答那些将来展望的人。

在数据库项目中,如果' \'字符包含在用户名中,登录名应与用户名匹配。

因此,这不起作用:

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

或者

CREATE USER [JOOS_NT\Indigo.Dev.svc] FOR LOGIN [JOOS_NT\Indigo.Dev.svc];

我不确定这是预期的行为还是错误。

答案 1 :(得分:0)

这是设计的。核心问题是在" CREATE USER FOR LOGIN"基于Windows用户登录,如果您使用的是用户的域名,则必须与登录的域名+登录名相匹配。在MSDN上查看此post