Как правильно вставить известные значения в проект базы данных VS 2010 после развертывания? - PullRequest
2 голосов
/ 17 августа 2011

Я пробовал несколько разных поисков в Google, но не могу найти ни лучших рекомендаций, ни учебных пособий, которые бы касались этого.

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

Существует файл Script.PostDeployment.sql, который включает следующий заголовок:

/*
Post-Deployment Script Template                         
--------------------------------------------------------------------------------------
 This file contains SQL statements that will be appended to the build script.       
 Use SQLCMD syntax to include a file in the post-deployment script.         
 Example:      :r .\myfile.sql                              
 Use SQLCMD syntax to reference a variable in the post-deployment script.       
  Example:      :setvar TableName MyTable                           
           SELECT * FROM [$(TableName)]                 
 --------------------------------------------------------------------------------------
*/

Мне интересно, есть ли какой-нибудь ожидаемый способ написания этих сценариев с использованием переменных вместо простого синтаксиса T-SQL?

Должен ли я писать

INSERT INTO [dbo].[BlackAdder] VALUES ('edmund')
INSERT INTO [dbo].[BlackAdder] VALUES ('baldrick')

или

setvar [dbo].[BlackAdder] BlackAdder
INSERT INTO [$(BlackAdder)] VALUES ('edmund')
INSERT INTO [$(BlackAdder)] VALUES ('baldrick')

Позволяет ли последняя какая-то проверка во время компиляции, чтобы, если setvar не может разрешить [dbo].[BlackAdder], проект выдал мне ошибку?

1 Ответ

3 голосов
/ 17 августа 2011

Если вы откроете папку проекта Properties и нажмете на Database.sqlcmvars, вы увидите уже заданные 3 переменные $(DefaultDataPath), $(DtabaseName) и $(DefaultLogPath) и сможете определить свои собственные здесь.

setvar был бы наоборот:

:setvar BlackAdder [dbo].[BlackAdder] 

, но в идеале вы должны определить их в Database.sqlcmvars.

Предполагаемое использование для развертывания проекта базы данных в нескольких средах путем определения переменных SQLCMD ивключая их в сценарии до развертывания и после развертывания.

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