1

我在 Visual Studio 2010 的 SQL Server 2008 数据库服务器项目中创建用户创建脚本。

脚本看起来像这样...

CREATE LOGIN Domain\User FROM WINDOWS

我将在我的台式电脑和笔记本电脑上进行开发。既不在域上运行也不使用本地用户,例如DESKTOP\TestUserLAPTOP\TestUser.

我需要做的是以某种方式将一个变量注入到自动设置域名的脚本中。我相信 SQL Server 是这样的@@SERVERNAME。然后我可以在我的两台电脑上工作,脚本也可以工作。目前,如果我在我的笔记本电脑上运行它,我会收到一个错误,因为DESKTOP\TestUser我的笔记本电脑上不是 Windows 主体。

我查看了 .sqlcmdvars 文件,我可以在其中设置一个变量,将其注入到脚本中。但是,我似乎无法将其转化为动态的东西,例如@@SERVERNAME.

我还查看了从我的部署后脚本运行 EXEC,但我收到一条错误消息,指出此命令在此上下文中无效 - 我相信这意味着 VS2010 DB 项目不接受 EXEC。

4

1 回答 1

1

您可以使用以下脚本来实现这一点。它对我很有效,并为本地用户创建了一个登录名:

declare @sql nvarchar(max) = N'create login [' + @@SERVERNAME + N'\TestUser] from windows'
exec(@sql)
于 2013-11-03T00:19:05.160 回答