直播中
另一種建立連接的方法為通過SQL語句的方式。建立連接使用sp_addlinkedserver存貯過程。其語法結(jié)構(gòu)如下:
sp_addlinkedserver [@server =] 'server' [, ][@srvproduct =] 'product_name']
[, ][@provider =] 'provider_name'] [, ][@datasrc =] 'data_source']
[, ][@location =] 'location'] [, ][@provstr =] 'provider_string']
[, ][@catalog =] 'catalog']
此存貯過程共有七個(gè)參數(shù),其含義分別如下:
■ server:要建立的連接的名稱。
■ srvproduct:為要連接的數(shù)據(jù)源的產(chǎn)品名稱。此參數(shù)默認(rèn)為空。
■ provider:為要連接的數(shù)據(jù)源的產(chǎn)品的唯一標(biāo)識(shí)符。在注冊(cè)表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers項(xiàng)中,有本地服務(wù)器支持的所有連接數(shù)據(jù)類型的名稱。
■ datasrc:作為此數(shù)據(jù)源的一個(gè)解釋信息。此參數(shù)默認(rèn)為空。
■ location:作為此數(shù)據(jù)源所在位置的一個(gè)解釋信息。此參數(shù)默認(rèn)為空。
■ provstr:為此數(shù)據(jù)源的連接串。此參數(shù)默認(rèn)為空。
■ catalog:指明連接時(shí)使用的目錄。此參數(shù)默認(rèn)為空。
下面的表格列出了對(duì)于連接不同類型的數(shù)據(jù),所用參數(shù)的取值情況。
數(shù)據(jù)源 數(shù)據(jù)類型 product_name provider_name data_source location provider_string catalog
SQL Server Microsoft OLE DB Provider for SQL Server SQL Server(注) - - - - -
SQL Server Microsoft OLE DB Provider for SQL Server SQL Server SQLOLEDB SQL Server服務(wù)器名 - - 數(shù)據(jù)庫名(可選)
Oracle Microsoft OLE DB Provider for Oracle 任意 MSDAORA SQL*Netalias for Oracle database - - -
Access/Jet Microsoft OLE DB Provider for Jet 任意 Microsoft.Jet.OLEDB.4.0 數(shù)據(jù)庫文件的完全路徑和文件名 - - -
ODBC data source Microsoft OLE DB Provider for ODBC 任意 MSDASQL System DSN of ODBC data source - - -
ODBC data source Microsoft OLE DB Provider for ODBC 任意 MSDASQL - - ODBC 連接串 -
File system Microsoft OLE DB Provider for Indexing Service 任意 MSIDXS Index Server的索引目錄名稱 - - -
Microsoft Excel Spreadsheet Microsoft OLE DB Provider for Jet 任意 Microsoft.Jet.OLEDB.4.0 Excel文件的完全路徑和文件名 - Excel 5.0 -
Site Server Full-Text Queries Microsoft OLE DB Provider for Site Server 任意 MSSEARCHSQL Site Server的索引目錄名稱 - - -
注:使用此方式將強(qiáng)制連接到同連接名相同的SQL Server服務(wù)器。
下面的例子將完成與我們?cè)谇懊嫱ㄟ^Enterprise Manager所做的同樣的工作。
EXECUTE sp_AddLinkedServer FileSystem,
'Indexing Service',
'MSIDXS',
'Web'
此外還有以下幾個(gè)同連接有關(guān)的存貯過程:
sp_dropserver:用于刪除已經(jīng)建立的連接,其語法結(jié)構(gòu)如下:
sp_dropserver [@server =] 'server' [, ][@droplogins =]{'droplogins' | NULL}]
其中server參數(shù)指明要?jiǎng)h除的連接的名字。Droplogins則指明同時(shí)將為此連接建立的登錄刪除。
sp_addlinkedsrvlogin:用于為連接建立一個(gè)登錄,其語法結(jié)構(gòu)如下:
sp_addlinkedsrvlogin [@rmtsrvname =] 'rmtsrvname'
[,][@useself =] 'useself']
[,][@locallogin =] 'locallogin']
[,][@rmtuser =] 'rmtuser']
[,][@rmtpassword =] 'rmtpassword']
其中rmtsrvname參數(shù)為連接的名稱。
Useself的取值為TRUE或FALSE,指明是否在遠(yuǎn)程服務(wù)器上直接使用此登錄。這要求在遠(yuǎn)程服務(wù)器上有一同此登錄相匹配的登錄。此參數(shù)默認(rèn)為TRUE。
Locallogin為一本地登錄名。此參數(shù)默認(rèn)為空。如果使用默認(rèn)值,則意味著所有的本地登錄都將連接到遠(yuǎn)程服務(wù)器。
rmtuser和rmtpassword分別為遠(yuǎn)程服務(wù)器上的登錄名及口令。如果useself參數(shù)為TRUE,則這兩個(gè)參數(shù)將被忽略。
sp_linkedservers:將返回當(dāng)前本地服務(wù)器上所有連接的相關(guān)信息。其典型的運(yùn)行結(jié)果如下:
SRV_NAME SRV_PROVIDERNAME SRV_PRODUCT SRV_DATASOURCE SRV_PROVIDERSTRING SRV_LOCATION SRV_CAT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-FILESYSTEM MSIDXS index server NULL NULL web NULL
ZW SQLOLEDB SQL Server ZW NULL NULL NULL
(2 row(s) affected)
其中返回的第一行數(shù)據(jù)為我們?cè)谇懊娼⒌腎ndex Server連接。而第二行數(shù)據(jù)為我們?cè)贓nterprise Manager所建立的用來管理SQL Server的連接。也就是在Enterprise Manager中注冊(cè)的SQL Server。
sp_droplinkedsrvlogin:用于刪除為遠(yuǎn)程連接建立的登錄。其語法結(jié)構(gòu)如下:
sp_droplinkedsrvlogin [@rmtsrvname =] 'rmtsrvname',
[@locallogin =] 'locallogin'
其中rmtsrvname參數(shù)為連接的名稱。Locallogin參數(shù)是為遠(yuǎn)程連接建立的本地登錄。如要?jiǎng)h除此登錄,要求必須存在映射到此登錄的遠(yuǎn)程連接。