3

我有一个使用SQL Server Express 2005 SP3的应用程序。此应用程序分发给几百个用户,每个用户都运行XP。不过,我们公司很快将转向Windows7。我的应用程序在SQL Server中使用批量插入操作,并且在XP中运行良好。然而,在Windows7中,我需要为了得到批量插入操作正常运行时打开SQL Server Management Studio中,作为管理员,并执行以下命令:Windows7上的SQL Server批量插入问题

EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Users', @rolename = N'bulkadmin' 

显然是不切实际的手工做这在各用户的电脑。所以,我想知道如果用户没有以管理员身份运行我的应用程序,我可以如何编写脚本。是否可以在安装期间在SQL Server引导包中设置?现有的安装如何?

+0

你对这个问题在ServerFault上问 - 有管理员有更适合回答这个问题。 – 2010-02-18 23:02:00

回答

1

您有几百次SQL Express安装?我假设你在一个可拆卸的环境中,他们需要他们的去往数据库。

您是否拥有域中所有服务器的管理员帐户?如果是这样,你可以远程运行 - 只要你能看到PC,你可以从任何地方运行它(假设远程连接已经建立)。

您所做的只是使用SQLCMD从命令行运行此操作。

http://msdn.microsoft.com/en-us/library/ms162773.aspx

你必须从一个单一的位置安装SQL服务器的每台计算机上远程运行相同的命令。

远程从每个SQL Server安装的管理员帐户(仅更改每台机器的名称)运行此命令。

SQLCMD -S Station01 -Q "EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Users', @rolename = N'bulkadmin'" 
SQLCMD -S Station02 -Q "EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Users', @rolename = N'bulkadmin'" 
SQLCMD -S Station03 -Q "EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Users', @rolename = N'bulkadmin'" 
SQLCMD -S Station04 -Q "EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Users', @rolename = N'bulkadmin'" 
SQLCMD -S Station05 -Q "EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Users', @rolename = N'bulkadmin'" 

如果您多次运行它,如果该组已经在BulkAdmins中,它将不会再次添加,这并不重要。

+0

为了让Raj的答案更完整 - 是的,您可以将其他管理用户编写为设置的一部分。手动完成设置,SQL Server将生成一个文件,您可以使用该文件使用相同的参数进行其他安装。 – 2010-02-22 12:53:26

+0

Raj, 感谢您的反馈!不幸的是,安装没有配置为接受远程连接,所以我不能通过网络发布命令。当我尝试时,出现以下错误: SQLCMD.EXE:Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:建立与SQL Serv er的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。欲了解更多信息,请参阅SQL Serv er书Online .. – jmbowse 2010-02-22 19:17:22

+0

布伦特, 也谢谢您的反馈意见。 SQL Server生成的文件的名称/位置是什么?另外,您是否知道我可以为现有安装做些什么?我想这应该是理所当然的,非管理员不会影响他们自己的权限,但我想我仍然会问。 – jmbowse 2010-02-22 19:18:04