代码之家  ›  专栏  ›  技术社区  ›  Ogre Psalm33

链接服务器是否有“if exists”测试?

  •  38
  • Ogre Psalm33  · 技术社区  · 14 年前

    我希望能够以编程方式(在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 test也始终返回空值。有什么方法可以实现这种签入T-SQL,以便我的其余代码可以假定链接始终存在?

    2 回复  |  直到 6 年前
        1
  •  75
  •   SteveC    6 年前

    登记入住 sys.servers :

    if not exists(select * from sys.servers where name = N'myserver\devdb_1')
    
        2
  •  17
  •   seebiscuit    6 年前
    IF NOT EXISTS ( SELECT TOP (1) * FROM sysservers WHERE srvname = 'myserver\devdb_1' )