Sql-Server
一個 SSDT 部署腳本中的數據遷移和更改表
我正在使用 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,您幾乎可以自動化您的部署。但是,您的具體範例需要對您的實現有一些了解,所以我想不出一種可以以程式方式知道這一點的方法。抱歉,如果我沒有正確閱讀您的內容。