Sql 为什么部署脚本会导致我出错?

Sql 为什么部署脚本会导致我出错?,sql,database,visual-studio,stored-procedures,deployment,Sql,Database,Visual Studio,Stored Procedures,Deployment,我正在visual studio 2012中从事一个项目。最近,我在解决方案中添加了一个数据库项目。在我将数据库添加到解决方案之前,它已经存在,并且一切正常。 但是,现在,当我尝试运行应用程序时,会出现错误。错误是由计算机生成的名为[database name].sql的文件引起的。在磁贴顶部,它显示: /* Deployment script for [the database name here] This code was generated by a tool. Changes to

我正在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.    

从您发布的错误来看,似乎有两个问题:

  • 未找到Windows NT用户或组(域)\(用户名)。-用于访问数据库的用户不存在。由于它是Windows用户,我猜它使用当前用户的凭据

    确保您的SQL实例可以接受Windows登录,并且您(以及构建该软件的任何其他人)具有必要的访问权限

  • “DatabaseName”不是可识别的选项。
    -这很可能也是由第一个问题引起的,但请仔细检查数据库是否存在


  • 从您发布的错误来看,似乎有两个问题:

  • 未找到Windows NT用户或组(域)\(用户名)。-用于访问数据库的用户不存在。由于它是Windows用户,我猜它使用当前用户的凭据

    确保您的SQL实例可以接受Windows登录,并且您(以及构建该软件的任何其他人)具有必要的访问权限

  • “DatabaseName”不是可识别的选项。
    -这很可能也是由第一个问题引起的,但请仔细检查数据库是否存在


  • 这个错误消息最近引起了我的注意,因为它与我的问题根本没有关系。事实证明,我的SQL脚本写得不正确(就我的情况而言,我忘了在PK列中添加标识(1,1))


    对我来说,这个故事的寓意是首先在SSMS中测试SQL数据文件。

    最近我发现了错误消息,因为它与我的问题根本没有关系。事实证明,我的SQL脚本写得不正确(就我的情况而言,我忘了在PK列中添加标识(1,1))


    对我来说,这个故事的寓意是首先在SSMS中测试SQL数据文件。

    也许包括实际错误可能会有所帮助。错误是什么?尽管生成错误的代码不能直接更改,但还有另一种方法可以确保生成的代码是正确的。更新:包含错误包含实际错误的Rhaps可能会有所帮助。错误是什么?尽管生成错误的代码不能直接更改,但还有另一种方法可以确保生成的代码是正确的。更新:包含错误