【发布时间】:2021-11-15 17:13:52
【问题描述】:
设置:
我有一个 Visual Studio 2019 .Net 解决方案,其中有一个 SSDT 项目。
目标:
我需要在每个 CI 构建 (TFS) 上自动生成一个 sql 更改脚本,以便进一步包含它来构建用于分发的工件。
我知道有 sqlpackage.exe 工具可以生成更改脚本,但它需要现有的数据库连接或 *.dacpac 文件进行比较。
是否有一种标准方法可以在每次 CI 构建时自动生成 sql 更改脚本?
更新:
示例:
我的 sql 项目的版本 #1:
MyProject\Schema Objects\Schemas\dbo\Tables\MyTable.sql:
CREATE TABLE [dbo].[MyTable] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] VARCHAR (50) NOT NULL,
);
我的 sql 项目的版本 #2:
MyProject\Schema Objects\Schemas\dbo\Tables\MyTable.sql:
CREATE TABLE [dbo].[MyTable] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] VARCHAR (50) NOT NULL,
[Description] VARCHAR (255) NOT NULL,
);
MyProject\Schema Objects\Schemas\dbo\Programmability\Stored Procedures\MyProcedure.sql
CREATE PROCEDURE [dbo].[MyProcedure]
BEGIN
...
...
END
我现在可以生成的脚本:
CREATE DATABASE
...
...
CREATE TABLE MyTable
...
...
CREATE PROCEDURE MyProcedure
...
...
我需要的脚本(更改脚本,仅包含相对于以前版本所做的更改):
ALTER TABLE [dbo].[MyTable]
ADD [Description] VARCHAR (255) NOT NULL
GO
ALTER PROCEDURE MyProcedure
...
...
GO
【问题讨论】:
-
似乎没有使用MSBuild自动生成sql更改脚本的标准方法。
-
@Tianyu 你可以在本地做到这一点
标签: visual-studio msbuild sql-server-data-tools