回答

3

如果在本地機器上使用[servername] [實例名稱],(本地)[實例名稱]或LOCALHOST [實例名稱],只要啓用共享內存,就會使用共享內存2005年和2008年的用戶界面不同,所以我不知道我應該幫助哪個版本)。 與SQLCMD等不同,無法告訴提供程序您只想使用共享內存 - 如果由於某種原因它不能使用共享內存,它將默認使用不同的協議(命名爲管道或TCP/IP)。您可以查看正在使用什麼協議,通過查看sys.dm_exec_connections:

SELECT session_id, net_transport 
    FROM sys.dm_exec_connections; 

我還沒有與SQL瀏覽器測試該關閉的,但我想這應該不會有任何影響。 FWIW,我總是使用TCP/IP,但我幾乎總是避免在本地計算機上安裝需要連接到SQL Server的應用程序 - 這是低規格的應用程序服務器的目的,而不是在數據庫服務器上佔用內存和CPU (因此遠離SQL Server)。

8

我用來在使用ADO訪問SQL Server的C++應用程序中創建連接字符串的連接字符串格式如下。

"Provider=MSDASQL;DRIVER={SQL Server};SERVER=lpc:(local);DATABASE=%s;UID=; Password=;" 

lpc:在SERVER =值中強制服務器連接使用共享內存協議。 %s用於將特定數據庫名稱放入從此格式生成的實際控制字符串中。

SQL Connect String

+1

這是一個很好的答案,我想,應該是公認的答案。 – 2013-02-07 14:06:36