Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 VS 2012数据层应用程序项目更新数据库最佳实践_Visual Studio 2012_Sql Server 2012_Data Tier Applications - Fatal编程技术网

Visual studio 2012 VS 2012数据层应用程序项目更新数据库最佳实践

Visual studio 2012 VS 2012数据层应用程序项目更新数据库最佳实践,visual-studio-2012,sql-server-2012,data-tier-applications,Visual Studio 2012,Sql Server 2012,Data Tier Applications,在VS2012中,我创建了一个数据库项目,一个导入的数据层应用程序 我的问题是,如果我正在开发,我想做的就是在VS 2012中修改sql表结构,比如说我在表中添加一个新列,这是将更改传输到数据库以构建项目的唯一方法。dacpac,然后通过sql Server Management Studio升级数据库,在我的例子中是通过sql Server Management Studio。若我在开发人员数据库上工作,非生产性的,我只想要一个更新脚本,我不知道如何在db project for data t

在VS2012中,我创建了一个数据库项目,一个导入的数据层应用程序

我的问题是,如果我正在开发,我想做的就是在VS 2012中修改sql表结构,比如说我在表中添加一个新列,这是将更改传输到数据库以构建项目的唯一方法。dacpac,然后通过sql Server Management Studio升级数据库,在我的例子中是通过sql Server Management Studio。若我在开发人员数据库上工作,非生产性的,我只想要一个更新脚本,我不知道如何在db project for data tier应用程序中获得它

我只是在两个地方手动进行更改,但最终我会被打断并忘记相应地进行更改

你是怎么做到的


谢谢

也许我没有关注您,但是您是否尝试过通过发布数据库项目来进行更新?如果在数据库项目上单击鼠标右键,应该会看到“发布数据库”对话框。从这里设置目标数据库连接,然后单击“发布”按钮。这应该将您的更改(在本例中是添加的列)应用于目标数据库

也可以从命令行运行它。看起来像这样

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>

真的
TargetDatabaseName
deployscriptname.sql
数据源=localhost\SQLEXPRESS;综合安全=真实;池=假
1.

注意:VS2012没有抓取我的更改。打开一个数据库视图查询并单击“更新”数据库,它不会在VS2012中将我的表编辑添加到脚本中。如果你在这里观看视频并跳到11分钟,你会看到Gert得到了他所有编辑的更新脚本,但我的没有,为什么?