SP0_AddLinkedServer.sql [创建Linked SQL Server ]

USE [master]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_Temp_AddLinkedServer]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure dbo.SP_Temp_AddLinkedServer;
GO

create procedure dbo.SP_Temp_AddLinkedServer
@@cloudServerIP nvarchar(250),
@@cloudServerSA nvarchar(50),
@@cloudSAPWD nvarchar(50)
AS
begin

    IF EXISTS(SELECT * FROM sys.servers WHERE name = @@cloudServerIP)
        EXEC master.sys.sp_dropserver @@cloudServerIP,'droplogins'  

    declare @TargetServer nvarchar(50)
    declare @strcloudServerIP nvarchar(50)
    declare @strcloudServerSA nvarchar(50)
    declare @strcloudSAPWD nvarchar(50)


    set @strcloudServerIP = @@cloudServerIP
    set @strcloudServerSA = @@cloudServerSA
    set @strcloudSAPWD = @@cloudSAPWD
    EXEC master.dbo.sp_addlinkedserver @server = @strcloudServerIP, @srvproduct=N'SQL Server'
     /* For security reasons the linked server remote logins password is changed with ######## */
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=@strcloudServerIP,@useself=N'False',@locallogin=NULL,@rmtuser=@strcloudServerSA ,@rmtpassword=@strcloudSAPWD

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'collation compatible', @optvalue=N'false'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'data access', @optvalue=N'true'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'dist', @optvalue=N'false'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'pub', @optvalue=N'false'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'rpc', @optvalue=N'false'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'rpc out', @optvalue=N'false'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'sub', @optvalue=N'false'


    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'connect timeout', @optvalue=N'0'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'collation name', @optvalue=null
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'lazy schema validation', @optvalue=N'false'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'query timeout', @optvalue=N'0'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'use remote collation', @optvalue=N'true'
    

    EXEC master.dbo.sp_serveroption @server=@strcloudServerIP, @optname=N'remote proc transaction promotion', @optvalue=N'true'
    



end


--use master exec SP_Temp_AddLinkedServer '10.1.12.110','sa','Sequoia2012'
View Code

相关文章: