【问题标题】:postdeploy schema changes部署后架构更改
【发布时间】:2017-11-08 13:45:27
【问题描述】:

在我的 sql 项目中,我有这样的脚本。这个文件有build action = Build。 表示这段sql代码会放在model文件(sql server dac Package file)中。

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

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

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

“数据库中已经有一个名为‘Class’的对象”

将此代码放在模型 dacpac 文件中时,我没有收到此错误。

如何通过部署后文件将架构更改推送到数据库?

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

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多