Переменная имени компьютера проекта сервера базы данных VS2010 - PullRequest
0 голосов
/ 07 февраля 2012

При использовании проекта базы данных SQL Server для Visual Studio 2010, есть ли способ использовать имя текущего компьютера в сценарии SQL? Например, я хотел бы создать учетную запись Windows:

CREATE LOGIN [$(MachineName)\Username] FROM WINDOWS;

Я пытался использовать [.\Username], [localhost\Username], [BuiltIn\Username] и [LocalMachine\Username], но я получаю ошибку во время развертывания; кажется, полное имя машины требуется.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Вы можете динамически построить оператор SQL после подключения.

DECLARE @userName NVARCHAR(MAX)
DECLARE @machineName NVARCHAR(MAX)
DECLARE @command NVARCHAR(MAX)
SELECT @machineName = CAST(SERVERPROPERTY('MachineName') AS NVARCHAR(MAX))
SET @userName = @machineName + '\UserA'

SET @command = 'CREATE LOGIN [' + @userName + '] FROM WINDOWS;'

EXEC sp_executesql @command
0 голосов
/ 08 февраля 2012

Вот что я в итоге сделал, если кому-то еще это нужно сделать.

  1. Создание конфигурации сборки для каждого региона (Разработка, QA, UAT, Производство).
  2. Создайте Properties\Database.[Region].sqlcmdvars для каждого региона.
  3. Перейдите на вкладку Свойства проекта базы данных, разверните и выберите правильный файл переменных команды SQL для текущей выбранной конфигурации.
  4. Повторите для всех остальных конфигураций.
  5. Не регистрируйте файл Database.Development.sqlcmdvars, поскольку он должен быть уникальным для каждой машины разработчика.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...