VS2010数据库服务器项目机器名称变量

时间:2012-02-07 19:51:14

标签: visual-studio-2010 sql-server-2008 sql-server-2005 windows-authentication

使用Visual Studio 2010 SQL Server数据库项目,无论如何都要在SQL脚本中使用当前的计算机名称?例如,我想创建一个Windows登录:

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

我已尝试使用[.\Username][localhost\Username][BuiltIn\Username][LocalMachine\Username]但我在部署期间遇到错误;似乎需要完整的机器名称。

2 个答案:

答案 0 :(得分:0)

以下是我最终要做的事情,以防其他人需要这样做。

  1. 为每个区域(开发,QA,UAT,生产)创建构建配置。
  2. 为每个地区创建Properties\Database.[Region].sqlcmdvars
  3. 转到数据库项目的“属性”,“部署”选项卡,然后为当前选定的配置选择正确的SQL命令变量文件。
  4. 重复所有其他配置。
  5. 不要签入Database.Development.sqlcmdvars文件,因为每个开发者机器应该是唯一的。

答案 1 :(得分:0)

您可以在连接后动态构建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