我正在Visual Studio 2010中的SQL Server 2008数据库服务器项目中创建用户创建脚本。
脚本看起来像这样......
CREATE LOGIN Domain\User FROM WINDOWS
我将在我的台式电脑和笔记本电脑上进行开发。既不在域上运行也不使用本地用户,例如DESKTOP\TestUser
和LAPTOP\TestUser
。
我需要做的是以某种方式将一个变量注入到自动设置域名的脚本中。我相信SQL Server这是@@SERVERNAME
。然后我可以在我的两台PC上工作,脚本也可以工作。目前,如果我在说我的笔记本电脑上运行它,我得到一个错误,因为DESKTOP\TestUser
不是我的笔记本电脑上的Windows Principal。
我查看了.sqlcmdvars文件,我可以在那里设置一个注入脚本的变量。但是,我似乎无法将其转化为动态内容,例如@@SERVERNAME
。
我还看过从我的部署后脚本运行EXEC,但是我收到一条错误,说这个命令在这种情况下无效 - 我相信这意味着VS2010数据库项目不接受EXEC。
答案 0 :(得分:1)
您可以使用以下脚本来实现此目的。它对我很有用,并为本地用户创建了一个登录名:
declare @sql nvarchar(max) = N'create login [' + @@SERVERNAME + N'\TestUser] from windows'
exec(@sql)