链接服务器是否有“IF EXISTS”测试?

时间:2010-06-23 17:50:30

标签: sql-server tsql linked-server

我希望能够以编程方式(在T-SQL中)检查我当前的服务器和数据库是否已存在特定的链接服务器(如果该链接尚不存在,我可以创建它)。我试过这样的东西:

IF OBJECT_ID('myserver\devdb_1') IS NULL
BEGIN
  PRINT 'Does not exist, need to create link'
  EXEC master.dbo.sp_addlinkedserver @server = N'myserver\devdb_1', 
                                     @srvproduct=N'SQL Server'
END
ELSE
  PRINT 'Link already exists'

但OBJECT_ID测试始终返回null,即使该链接已存在。任何方法都可以检查T-SQL,以便我的其余代码可以假定链接始终存在?

2 个答案:

答案 0 :(得分:77)

签入sys.servers

if not exists(select * from sys.servers where name = N'myserver\devdb_1')

答案 1 :(得分:17)

IF NOT EXISTS ( SELECT TOP (1) * FROM sysservers WHERE srvname = 'myserver\devdb_1' )