我希望能够以编程方式(在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,以便我的其余代码可以假定链接始终存在?
答案 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' )