2017-06-07 51 views
0

在我的sql項目中我有這樣的腳本。這個文件有build action = Build。 這意味着這個sql代碼將放置在model文件(sql server dac Package文件)中。postdeploy模式更改

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

我想製作build action = None並將此代碼置於發佈dacpac的部署文件。

但是,當我第二次將此dacpac部署到db時,我將得到一個錯誤。

「已經有一個名爲‘類’數據庫中的對象」

當這個代碼放置在模型dacpac文件我沒有得到這個錯誤。

如何通過postdeploy文件將架構更改推送到db?

我應該使用手動遷移腳本嗎?

回答

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