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