使用MSBuild创建批处理文件以完成数据库任务

时间:2017-07-12 08:23:40

标签: .net sql-server batch-file msbuild

我正在尝试使用MSBuild创建批处理文件,这将帮助我完成表和存储过程创建的数据库任务。创建它们之后,等待约60秒,并删除创建的表和存储过程。时间在这里是变化的。

以下是我到目前为止编写的代码。我无法从批处理文件中删除创建的表和存储过程。

批处理文件:

@echo off

msbuild /t:Build;Publish /p:SqlPublishProfilePath=<<file_name>>

echo Please wait ~60 seconds 
Timeout /t 60 /nobreak
echo Dropping tables and the Stored Procedures

浏览网页后。我能够获得Database drop命令,但这不是我想要完成的。

非常感谢任何帮助/提示。谢谢。

1 个答案:

答案 0 :(得分:0)

使用SqlPackage.exe执行以下操作(C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ DAC \ bin。)

  1. 创建目标数据库的快照

    sqlpackage / Action:Extract / SourceDatabaseName:“MyDatabase”/ SourceServerName:localhost /TargetFile:"C:\SomeDirectory\Before.dacpac“

  2. 构建解决方案以创建Dacpac

    msbuild ..你的sln文件

  3. 使用结果步骤2执行发布

    sqlpackage / Action:Publish /SourceFile:"C:\SomeDirectory\NewSchema.dacpac“/ TargetDatabaseName:TestACM / TargetServerName:

  4. “\ SQLEXPRESS”。
  5. 在第一步中使用制作的快照回滚重新发布 sqlpackage / Action:发布/SourceFile:"C:\SomeDirectory\Before.dacpac“/ TargetDatabaseName:TestACM / TargetServerName:

  6. “\ SQLEXPRESS”。

    SqlPackage.exe