在VS2012中,我创建了一个数据库项目,一个从我的SQL Server 2012实例创建的导入的数据层应用程序.dacpac。
我的问题是,如果我正在开发,我想要做的就是修改VS 2012中的sql表结构,比如我向表中添加一个新列,是将该更改传输到数据库以构建的唯一方法退出项目.dacpac,然后通过SQL Server Management Studio升级数据库。如果我正在开发一个开发人员数据库,非生产,我只想要一个更新脚本,我不知道如何在数据层应用程序的db项目中获得它。
我只是手动在两个地方进行更改,但最终我会被打断并忘记进行相应的更改。
你是怎么做到的?
感谢
答案 0 :(得分:0)
也许我不是在这里关注你,但你是否尝试通过发布数据库项目来进行更新?如果右键单击数据库项目,则应看到“发布数据库”对话框。从那里设置Target数据库连接,然后单击Publish按钮。这应该将您的更改(在本例中为已添加的列)应用于目标数据库。
您也可以从命令行运行它。这看起来像这样
c:\MyCode\bin\Debug>"c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin"\sqlpackage.exe /Action:Publish /Sourcefile:MyCode.dacpac /Profile:local.publish.xml
而且publish.xml文件可能看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName>TargetDatabaseName</TargetDatabaseName>
<DeployScriptFileName>TheDeployScriptName.sql</DeployScriptFileName>
<TargetConnectionString>Data Source=localhost\SQLEXPRESS;Integrated Security=True;Pooling=False</TargetConnectionString>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
</Project>