标签: database-project

数据库部署(vsdbcmd.exe):DatabaseName和DefaultDataPath被忽略?

Visual Studio数据库版本附带了一个工具vsdbcmd.exe,该工具应该允许某人将.dbschema文件(由构建时的数据库项目生成)部署到数据库.它通过首先构建脚本然后执行它来完成此操作:

vsdbcmd.exe/a:Deploy/cs:"Data Source =(local); Integrated Security = True; Pooling = False"/ dsp:Sql/dd /model:"..Database.dbschema"/ p:TargetDatabase = TargetDB /manifest:"..\Database.deploymanifest"

我希望它可以将脚本部署到不同的数据库服务器而不会出现问题.但是,实际.mdf文件的完整路径在脚本中编码,以及对原始数据库的一些其他引用.要么没有控制它的选项,要么我找不到它.

有人用这个吗?你如何部署?我应该使用不同类型的数据库项目(我记得在"数据库项目"和"服务器项目"之间有选择的方式,但我不知道这是否重要)?

编辑

我可以覆盖.sqlcmdvars就好了,但这并没有解决问题.这是使用上面的命令从生成的.sql文件中提取的:

GO
:setvar DatabaseName "TargetDB"
:setvar DefaultDataPath "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\"
Run Code Online (Sandbox Code Playgroud)

因此,正确记录了"targetdb"目标数据库.但是,进一步说:

CREATE DATABASE [$(DatabaseName)]
ON 
PRIMARY(NAME = [Original], FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Original.mdf', SIZE = 3072 KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024 KB)
LOG ON (NAME = [Original_log], FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Original_log.ldf', SIZE = 1024 KB, MAXSIZE = 2097152 MB, FILEGROWTH = 10 %) …
Run Code Online (Sandbox Code Playgroud)

database-project visual-studio-2008 visual-studio

12
推荐指数
1
解决办法
7145
查看次数

使用MSBuild和TeamCity部署VS 2010数据库项目

是否可以使用TeamCity部署VS 2010数据库项目?

我正在构建我的整个解决方案,并将网站部署到我的服务器,这一切都正常.

我想要触发的最后一步是部署数据库项目,该项目生成一个sql脚本并进行部署.

我选择了"创建部署脚本(.sql)并部署到数据库"选项作为部署操作,我的配置目标设置为构建和部署数据库项目,但我无法想象如何获取TeamCity和MSBuild触发它.

msbuild teamcity database-project visual-studio-2010 visual-studio

12
推荐指数
2
解决办法
3084
查看次数

Visual Studio 2010数据库项目:是否有关于新数据库项目类型的视频/教程或评论?

我最近升级到Visual Studio 2010.我将数据库项目与应用程序项目分开.数据库项目是从旧的DPR项目转换而来,并添加了大量的附加文件夹.我删除了那些,但现在我怀疑我需要重新创建项目,因为这些新项目的工作方式非常不同.

现在我需要更新脚本,似乎我甚至无法将新的SQL文件粘贴到项目中,所以有点卡住了.是否有任何教程/演练显示了启动和创建数据库项目的基础知识?甚至更好的视频?

如果有任何提示和技巧或评论,我会很高兴听到他们?

database-project visual-studio-2010 sql-server-2008

11
推荐指数
1
解决办法
7057
查看次数

为什么即使我没有对项目进行任何更改,我的数据库项目的.dbmdl文件也会发生变化?

我遇到了一个小而奇怪的烦恼,似乎也发生在其他人身上(例如,查看SEDE的修订历史).我在Visual Studio 2010中有一个正常工作的SQL Server 2008数据库项目.当我提交/签入源代码控制时,我被告知我的DB项目的.dbmdl文件已经改变,即使我没有对项目进行任何更改!

我不确定是通过构建我的解决方案(其中还包括ASP.NET MVC应用程序和单元测试项目)或简单地打开数据库项目来触发更改,但是这会变得有点烦人并且正在创建混乱源控制.

是否可以阻止这些更改发生,或者删除.dbmdl文件?

database sql-server database-project visual-studio-2010 visual-studio

11
推荐指数
2
解决办法
8037
查看次数


如何从SSDT发布脚本中删除ALTER DATABASE语句?

免责声明:在SO上有一个类似的问题似乎是指旧版本的SSDT.所选答案引用了不在我的项目中的设置文件.我相信我在正确设置的新项目格式中有相同的设置.

我是SSDT的新手,我不相信它不会以非预期的方式改变我的数据库.按照我想要的方式获取设置后,我尝试了一个发布,看看它会尝试对我的数据库做什么.我将这些语句添加到发布脚本中:

    ALTER DATABASE [$(DatabaseName)]
        SET ANSI_NULLS ON,
            ANSI_PADDING ON,
            ANSI_WARNINGS ON,
            ARITHABORT ON,
            CONCAT_NULL_YIELDS_NULL ON,
            CURSOR_DEFAULT LOCAL,
            RECOVERY FULL,
            AUTO_UPDATE_STATISTICS ON 
        WITH ROLLBACK IMMEDIATE;

    ALTER DATABASE [$(DatabaseName)]
        SET PAGE_VERIFY NONE 
        WITH ROLLBACK IMMEDIATE;

    EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
        SET TRUSTWORTHY OFF 
        WITH ROLLBACK IMMEDIATE';
Run Code Online (Sandbox Code Playgroud)

我不希望数据库项目永远修改我的数据库设置,所以我在调试设置下取消选中此项:

此外,在高级发布设置下:

高级发布设置截图

在项目设置下| 数据库设置我使一切都与我的数据库匹配

数据库设置截图 Management Studio中的数据库设置

我怎么能阻止这个?

sql-server publish database-project sql-server-2012 sql-server-data-tools

11
推荐指数
2
解决办法
5340
查看次数

如何避免使用visual studio 2012数据库项目的循环引用

我正在尝试在Visual Studio 2012中创建数据库解决方案.

我有5个数据库都存在于同一台服务器上,因此我将每个数据库导入到数据库项目中.

遗憾的是,数据库中有相当多的对象引用其他数据库中的对象,因此我一直在尝试通过添加数据库引用来创建数据库引用以引用这些跨数据库实例来解决这些问题.

问题是我有数据库A引用B和B引用A,它不允许我添加这两个引用.我收到消息框说"添加此项目作为参考将导致循环依赖".

有关解决此问题的方法的任何想法?我想有一种方法可能是为每个数据库创建一个解决方案,但是如果有更好的方法,我宁愿不这样做.

我们正在尝试建立一个自动构建,所以我真的需要编译数据库项目.

sql-server database-project visual-studio-2012

11
推荐指数
1
解决办法
3790
查看次数

如何通过SSDT的SQLPackage.exe将DACPAC文件发布到SQL Server数据库项目?

我使用SSDT为Visual Studio 2012 在这里和使用它的命令行工具SQLPackage.exe来发布.dacpac文件.

我想把它发布到SQL Server database project.我正在尝试使用本指南中的参数,但无法找到如何操作的方法.

我怎样才能做到这一点?

publish database-project dacpac sqlpackage sql-server-data-tools

11
推荐指数
1
解决办法
2万
查看次数

在Visual Studio中,更改键盘以使用F键"执行sql"

在Visual Studio 2010中,我有一个数据库项目.我可以毫无问题地使用它来查看,编辑,创建sprocs等.

如何更改键盘以允许我使用F键"执行sql",就像我在MSSMS中使用F5一样.我似乎无法在Tools-Options-Keyboards中找到正确的绑定序列,并认为询问社区会更快,因此我可以专注于编写代码atm.

非常感谢.(是的,我承认我很懒,但我的googlefu已经放弃了今天早上的鬼魂,我只是很好奇,它并没有阻止我)

database-project visual-studio-2010

10
推荐指数
2
解决办法
1610
查看次数

如何在Visual Studio数据库项目中处理用户和登录?

我在SQL Server 2008 R2中构建了一个数据库,并使用Visual Studio 2010 Ultimate为它创建数据库项目.

我已经基于此MSDN演练创建了一个SQL Server项目和数据库项目来表示我的环境.两个项目的模式比较按预期工作,我可以将所有更改服务器复制到项目中.

但是,它似乎已经导入了一些特定于环境的配置,例如登录,用户/登录映射,本地服务帐户(例如NT SERVICE\MSSQL $ SQLEXPRESS2008)等.这似乎不太理想,因为我的印象是这个数据库项目可以部署到另一台服务器上,那些环境特定的细节可能不同.例如,Dev,QA和Prod之间的命名实例可能不同.用户可以映射到不同的登录名.

我是否正确地执行此操作,还是应该采取额外步骤使数据库项目可移植到所有环境?

我的目标是利用这个项目

  1. 在版本控制中捕获模式
  2. 部署架构更改,例如通过生成更改脚本
  3. 与单元测试相结合,即时创建一次性测试环境.

sql-server database-project visual-studio-2010 visual-studio sql-server-2008-r2

10
推荐指数
1
解决办法
6270
查看次数