2016-12-06 1 views
2

Есть ли способ включить временные таблицы в проекте базы данных Visual Studio SQL Server 2016? Я не могу найти способ заставить это работать. Я предполагаю, что это может быть проблема совместимости, единственный способ, который я нашел, - включить таблицу в сценарии пост-развертывания, но затем при следующем развертывании сценарий генерирует капли для соответствующих столбцов.Проект базы данных Visual Studio SQL Server 2016 и временные таблицы

+0

Какую версию Visual Studio и SSDT вы используете? Что такое * точное * поведение? Вы хотите сказать, что попытка развертывания в существующей базе данных генерирует инструкции DROP для существующих столбцов без создания временных таблиц? Переход через временные таблицы * является самым безопасным вариантом –

+0

Какие изменения вы пытались развернуть? –

+0

Я не могу воспроизвести это. У SSDT уже есть шаблон для временных таблиц. Изменение таблицы генерирует ожидаемые инструкции модификации схемы, которые сначала копируют данные во временную таблицу, чтобы избежать потери данных. –

ответ

0

Временные таблицы поддерживаются. Последняя версия SSDT для Visual Studio 2015 уже содержит шаблон временной таблицы, который добавляет предложение 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 ROW START»? – gmn

+0

В чем дело? Шаблон содержит столбцы периодов, и у них есть предложение 'GENERATED ALWAYS AS ROW START/END'. Вы можете изменить их имена до того, что захотите перед публикацией. –

Смежные вопросы