2010-10-04 2 views
4

Я использую проект базы данных в Visual Studio 2010 для управления всем кодом моей базы данных.Управление образцами данных с помощью базы данных VS 2010

Для моего приложения мы разделяем данные для каждого клиента в свою собственную копию базы данных с общей базой данных для сопоставления пользователей с соответствующей базой данных.

Я хотел бы сохранить несколько разных наборов данных выборки в TFS вместе с кодом и иметь возможность выборочно развертывать один из них по мере необходимости.

Я создал сценарии для двух разных клиентских баз данных и сохранил их в каталоге после развертывания в tfs. Я хотел бы сохранить еще один, который мы используем для демонстраций и модульного тестирования.

Есть ли способ сделать: r условным в SQLCMD? Существуют ли другие предложения или рекомендации по тому, как это сделать? Я читал Visual Studio 2010 Database Projects Guidance Document, но пока ничего не нашел.

Заранее благодарим за любую помощь, которую вы можете предоставить.

ответ

3

Я был на правильном пути, прежде чем добавлять переменную в проект и проверять ее в скрипте.

Есть два маленьких уловы:

  1. В .sqlcmdvars файл значение переменной значение должно включать одиночные кавычки вокруг него
  2. Этот метод дает единственный сценарий со всеми данными выборки включается, но выполняется только тот, который указан переменной. По мере того, как данные образца становятся более полными, это станет довольно большим файлом, но это должно быть хорошо для моих целей. Я мог видеть, как это будет срабатывать для действительно больших наборов данных. Кроме того, отдельные сценарии не могут иметь разделитель GO в них, поскольку он содержится в блоке BEGIN END.

Вот мой файл:

/* All deployments get the reference data */ 
:r .\ReferenceData.PostDeployment.sql 

IF ('$(SampleSet)' = 'ClientA') 
BEGIN 
    :r .\SampleData.ClientA.PostDeployment.sql 
END 
ELSE IF ('$(SampleSet)' = 'ClientB') 
BEGIN 
    :r .\SampleData.ClientB.PostDeployment.sql 
END 

Кредит Джейми Томсона и this article для бита цитируемого значения.

+0

Кто-нибудь знает, как это сделать, когда отдельные скрипты содержат инструкцию GO? – JontyMC

0

Возможно, это не так, как вы хотите, но для создания простой базы данных & население из .Net обзор использования широкого инструмента миграции. Мои предпочтения (Migrator.NET), но полный обзор можно найти там: http://flux88.com/blog/net-database-migration-tool-roundup/