將 sysservers 中的網(wǎng)絡(luò)名稱設(shè)置為用于遠(yuǎn)程 Microsoft® SQL Server™ 實(shí)例的實(shí)際網(wǎng)絡(luò)計(jì)算機(jī)名。該過程可用于啟用對(duì)計(jì)算機(jī)(其網(wǎng)絡(luò)名稱中包含無效的 SQL Server 標(biāo)識(shí)符)的遠(yuǎn)程存儲(chǔ)過程調(diào)用執(zhí)行。
sp_setnetname @server = 'server',
@netname =
'network_name'
@server = 'server'
是在用戶編碼的遠(yuǎn)程存儲(chǔ)過程調(diào)用語法中引用的遠(yuǎn)程服務(wù)器名。sysservers 中必須正好已有一行要使用該 server。server 的數(shù)據(jù)類型是 sysname,沒有默認(rèn)設(shè)置。
@netname = 'network_name'
是對(duì)其執(zhí)行遠(yuǎn)程存儲(chǔ)過程調(diào)用的計(jì)算機(jī)網(wǎng)絡(luò)名稱。network_name 的數(shù)據(jù)類型是 sysname,沒有默認(rèn)設(shè)置。
該名稱必須與 Microsoft Windows NT® 計(jì)算機(jī)名匹配,并且可以包含 SQL Server 標(biāo)識(shí)符中不允許的字符。
如果 SQL Server 計(jì)算機(jī)中定義了與 network_name 匹配的 DB-Library 別名,則該別名中的連接字符串信息用于連接到遠(yuǎn)程 SQL Server。
0(成功)或 1(失?。?/P>
無
如果計(jì)算機(jī)名包含無效的標(biāo)識(shí)符,對(duì) Windows NT 計(jì)算機(jī)的一些遠(yuǎn)程存儲(chǔ)過程調(diào)用則可能遇到問題。使用該過程區(qū)別 sysservers.srvname 和 sysservers.srvnetname 之間的值。
因?yàn)殒溄臃?wù)器和遠(yuǎn)程服務(wù)器駐留在相同的命名空間內(nèi),所以它們的名稱不能相同。不過,通過指派不同的名稱并使用 sp_setnetname 將其中一臺(tái)服務(wù)器的網(wǎng)絡(luò)名稱設(shè)置為基礎(chǔ)服務(wù)器的網(wǎng)絡(luò)名稱,則可以在給定的服務(wù)器上同時(shí)定義鏈接服務(wù)器和遠(yuǎn)程服務(wù)器。
--Assume sqlserv2 is actual name of SQL Server
--database server
EXEC sp_addlinkedserver 'sqlserv2'
GO
EXEC sp_addserver 'rpcserv2'
GO
EXEC sp_setnetname 'rpcserv2', 'sqlserv2'
說明 不支持使用 sp_setnetname 將鏈接服務(wù)器指回本地服務(wù)器。以這種方式引用的服務(wù)器不能參與分布式事務(wù)。
只有 sysadmin 和 setupadmin 固定服務(wù)器角色的成員才能執(zhí)行此過程。
下例顯示在 SQL Server 上發(fā)出遠(yuǎn)程存儲(chǔ)過程調(diào)用所使用的典型管理序列。
USE master
EXEC sp_addserver 'Win_NT1'
EXEC sp_setnetname 'Win_NT1','Win-NT1'
EXEC Win_NT1.master.dbo.sp_who
相關(guān)文章