postdeploy架构更改

时间:2017-06-07 09:27:16

标签: sql sql-server visual-studio tsql azure

在我的sql项目中,我有这样的脚本。此文件包含build action = Build。 这意味着这个sql代码将放在model文件中(sql server dac包文件)。

CREATE TABLE [dbo].[Class] (
        [Id]   SMALLINT      NOT NULL,
        [Name] NVARCHAR (50) NOT NULL,
    );

我想制作build action = None并将此代码放在发布dacpac的部署文件中。

但是当我第二次将这个dacpac部署到db时,我会收到错误。

  

"已经有一个名为' Class'在数据库"

当此代码放在模型dacpac文件中时,我不会收到此错误。

如何通过postdeploy文件将架构更改推送到db?

我应该使用手动迁移脚本吗?

1 个答案:

答案 0 :(得分:1)

IF NOT EXISTS(
SELECT 1 FROM sys.objects where name='Class'
AND type='U'
)
Begin

CREATE TABLE [dbo].[Class] (
        [Id]   SMALLINT      NOT NULL,
        [Name] NVARCHAR (50) NOT NULL,
    );
END