Sql-Server

一個 SSDT 部署腳本中的數據遷移和更改表

  • January 12, 2017

我正在使用 SSDT 和 MS SQL Server 2012。我需要在一個部署腳本中處理下一個案例: --1 CREATE TABLE Table1 (Col1 INT) --2 INSERT INTO Table1(Col1) SELECT SomeCol FROM SomeTable --3 ALTER TABLE dbo.SomeTable DROP COLUMN SomeCol --4 INSERT INTO AnotherTable(AnotherCol) VALUES(1)

我現在可以在我的部署腳本中看到什麼:

--Pre-deployment part
--some insert. Will fail because it select/insert from/to not created objects

--Deployment part
CREATE TABLE Table1 (Col1 INT)
GO
ALTER TABLE dbo.SomeTable DROP COLUMN SomeCol
GO

--Post-deployment part
--some insert. Will fail because it select/insert from/to not created objects

我需要如何配置發布/預部署腳本?部署期間是否可以在 SSDT 中自動執行此操作?

感謝任何建議。

我不確定這是否在您正在使用的 SSDT/Visual Studio 版本中,但據我所知,在數據庫項目類型中 - 您可以添加部署前/部署後腳本,只需添加右鍵點擊您的項目並添加腳本 > 部署前/部署後腳本。

當您發布此腳本並生成腳本時,您將看到 SQLCMD 語法中的部署前和部署後腳本。

就自動執行而言,我認為您的要求是不可能的。就個人而言,我發現生成 DACPAC 對於部署非常有用。開發您的數據庫並發佈到 DACPAC,您幾乎可以自動化您的部署。但是,您的具體範例需要對您的實現有一些了解,所以我想不出一種可以以程式方式知道這一點的方法。抱歉,如果我沒有正確閱讀您的內容。

引用自:https://dba.stackexchange.com/questions/160711