我正在开发visual studio 2012中的一个项目。最近,我在解决方案中添加了一个数据库项目。在我将其添加到解决方案之前,数据库已经存在,一切正常。 但是,现在,当我尝试运行应用程序时,我收到错误。这些错误是由名为[database name] .sql的计算机生成的文件引起的。在图块的顶部,它显示为:
/*
Deployment script for [the database name here]
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
*/
每次运行应用程序时都会重新创建此文件。发生的错误似乎是语法错误。我无法修复它们,因为我对文件所做的任何更改都是无关紧要的,因为每次运行都会生成一个新文件并重新出现错误。
我尝试在网上查看此内容但遇到了麻烦。这对我来说都很新鲜。
以下是一些正在创建的错误:
GO
:setvar DatabaseName "(the database name is here)"
这给了我三个错误:
Error 88 SQL80001: Incorrect syntax near ':'.
Error 89 SQL80001: 'DatabaseName' is not a recognized option.
Error 90 SQL80001: Incorrect syntax near '"(the database name is here in the code)"'.
此外,还有一行代码为:
CREATE USER [(the domain)\(the username)] FOR LOGIN [(the domain)\(the username)];
GO
会出现以下错误:
Error 119 SQL72014: .Net SqlClient Data Provider: Msg 15401, Level 16, State 1, Line 1 Windows NT user or group '(the domain)\(the username)' not found. Check the name again.
答案 0 :(得分:0)
根据您发布的错误,看起来有两个问题:
Windows NT user or group '(the domain)\(the username)' not found.
- 用于访问数据库的用户不存在。由于它是Windows用户,我猜它会使用当前用户的凭据。
确保您的SQL实例可以接受Windows登录,并且您(以及构建该软件的任何其他人)具有必要的访问权限。
'DatabaseName' is not a recognized option.
- 这很可能也是由第一个问题造成的,但请仔细检查数据库是否存在。
答案 1 :(得分:0)
该错误消息最近使我陷入困境,因为它根本与我的问题原因无关。事实证明,我的SQL脚本编写有误(对于我的情况-我忘了在ID PK列中添加IDENTITY(1,1))。
对我而言,故事的寓意是首先在SSMS中测试SQL数据文件。