¿Hay una prueba de "SI EXISTE" para un servidor vinculado?


Quiero poder verificar mediante programación (en T-SQL) si ya existe un servidor vinculado específico para mi servidor y base de datos actuales (de modo que si el enlace aún no existe, puedo crearlo). Probé cosas como esta:

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'

Pero la prueba OBJECT_ID siempre devuelve null, incluso si el enlace ya existe. ¿Hay alguna forma de hacer esto en T-SQL, para que el resto de mi código pueda asumir que el enlace siempre existe?

Author: SteveC, 2010-06-23

2 answers

Check in sys.servers:

if not exists(select * from sys.servers where name = N'myserver\devdb_1')
 71
Author: Remus Rusanu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-09 14:17:28
IF NOT EXISTS ( SELECT TOP (1) * FROM sysservers WHERE srvname = 'myserver\devdb_1' )
 17
Author: Jorge Ferreira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-05 17:37:23