2016-12-06 122 views
2

有沒有一種方法,使在Visual Studio中的SQL Server 2016數據庫項目時態表?我無法找到一種方法來使這個工作。我想這可能是一個兼容性的問題,我發現的唯一方法是使在部署後腳本的表,但隨後在接下來的部署,腳本生成的問題列滴。 支持Visual Studio中的SQL Server 2016數據庫項目和時態表

+0

哪些Visual Studio和SSDT的版本您使用的? *確切*行爲是什麼?你是否說要嘗試部署到現有數據庫,爲現有列生成DROP語句而不生成臨時表?瀏覽臨時表*是最安全的選項 –

+0

您嘗試部署哪些更改? –

+0

我無法重現這一點。 SSDT已經有一個臨時表的模板。修改表產生預期的模式修改語句,首先將數據複製到一個臨時表,以避免數據丟失 –

回答

0

態表。爲Visual Studio 2015年最新versionof SSDT已包含添加WITH (SYSTEM_VERSIONING = ON(HISTORY_TABLE=[dbo].[MyTempTable_HISTORY], DATA_CONSISTENCY_CHECK=ON))條款表創建腳本,並創建歷史表中的時序表模板。

修改表生成修改的任何其它表,以避免數據丟失時產生相同的腳本 - 將數據複製到一個新的臨時表,重建原始表,然後將數據複製回來。

唯一的「奇怪」的行爲是歷史表例如,即使是重命名重構重建,其產生sp_rename命令:

GO 
EXECUTE sp_rename @objname = N'[dbo].[MyTempTable].[Name]', @newname = N'Name1', @objtype = N'COLUMN'; 


GO 
PRINT N'Starting rebuilding table [dbo].[MyTempTable_HISTORY]...'; 


GO 
CREATE TABLE [dbo].[tmp_ms_xx_MyTempTable_HISTORY] (
+0

這是否工作,即使有「GENERATED ALWAYS AS行開始」列? – gmn

+0

做什麼工作?該模板確實包含句點列,並且它們具有'GENERATED ALWAYS AS ROW START/END'子句。您可以在發佈之前將其名稱更改爲任何您想要的內容。 –

相關問題