2015-05-10 2 views
0

Я использую SSDT для развертывания баз данных. У меня статические данные добавляются из сценария после развертывания. Однако есть много данных, и я не хочу, чтобы это было сделано, если это не было необходимо.Определите, существует ли новое развертывание (база данных)

в основном то, что мне нужно:

if($newdeployment) 
:r .\scripts\insertstaticdata.sql 

Какой самый лучший способ сделать это?

+0

Что бы вы хотели, если бы одна строка статических данных была удалена случайно? Или изменены неправильно? –

+0

Это dev/test среды, поэтому это не имеет значения - набор данных просто большой, чтобы развернуть все данные каждый раз, когда кто-то совершает изменение схемы. – reach4thelasers

+0

Я бы просто предложил (больше для будущих читателей, чем для вас), что такое решение должно приниматься на основе количества времени и ресурсов, необходимых для развертывания всех данных в любое время, в отличие от размера сценария, необходимого для развертывания. Кроме того, рассмотрите BULK INSERT в промежуточную таблицу, а затем MERGE из промежуточной таблицы в таблицу. –

ответ

0

Мы сделали это, настроив определенный профиль публикации для «Нового», который будет воссоздавать БД, и если бы эта переменная была установлена, она запускала бы скрипт «вставить новые данные». В противном случае для всех других типов выпусков он просто запускает обычные сценарии после развертывания. Добавьте пару оберток Begin/End вокруг вашего IF/ELSE, чтобы сразу поймать все сценарии, и вы должны быть хорошими.

В противном случае вы можете рассмотреть возможность поиска в таблице, которая определенно должна иметь данные, и выполнить проверку IF NOT EXISTS (выберите * из MyTable), чтобы проверить, следует ли запускать заполненный все сценарий данных.

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