zoukankan      html  css  js  c++  java
  • 跨服务器执行SQL

     
    --exec sp_helpserver 可以以存储过程形式执行以下:
    
    --1.1 创建登录信息(或叫创建链接服务器登录名映射)(只需选择一种方式)
        
    --1.1.1 以windows认证的方式登录
    /*例如:EXEC sp_addlinkedserver 'TonyLink','','SQLOLEDB','192.168.58.208' */ 
    EXEC sp_addlinkedserver 'DB1','','SQLOLEDB','0.0.0.0' --有自定义实例名还要加上"/实例名"
    
    
    --1.1.2 以SQL认证的方式登录 
    /*例如:EXEC sp_addlinkedsrvlogin 'TonyLink'  或  EXEC sp_addlinkedsrvlogin 'TonyLink','true'  */
    
    /*例如:EXEC sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */
    EXEC sp_addlinkedsrvlogin 'DB1','false',NULL,'sa','123'
    
        --1.1.3 执行SQL或者存储过程
        /*更新菜单按钮*/
        INSERT INTO DB1.SUP2.dbo.sys_MenuButton ( Alias, Name, BtnName, BtnText)
        SELECT A.Alias,A.Name,A.BtnName,A.BtnText
        FROM SUP.dbo.sys_MenuButton AS A
    
    
        /*查询所有用户角色id*/
        DECLARE @RoleId INT
        DECLARE @TEMP TABLE (RoleId INT)
        
        INSERT INTO @TEMP 
        SELECT u.RoleId FROM DB1.SUP2.dbo.userBase u GROUP BY u.RoleId
    
        
        /*循环更新所有角色id新增的菜单按钮权限*/
        WHILE @@ROWCOUNT > 0
        BEGIN
            PRINT 'begin ---'
            IF EXISTS (SELECT TOP 1 RoleId FROM @TEMP )
            BEGIN
                    SELECT TOP 1 @RoleId=RoleId FROM @TEMP
                    
                    PRINT 'exec count ---'
    
                    DECLARE @Count INT
                    SELECT @Count = COUNT(*)
                    FROM DB1.SUP2.dbo.sys_MenuButton mb
    
                    PRINT @Count
                    PRINT @@ROWCOUNT
                    
                    DELETE FROM @TEMP WHERE RoleId=@RoleId
            END
        END;
    
        
    --1.1.4 删除声明的映射和远程服务器链接
    Exec sp_droplinkedsrvlogin DB1,Null --删除映射(断开与链接服务器上远程登录之间的映射) 
    Exec sp_dropserver DB1 --删除远程服务器链接 
  • 相关阅读:
    BZOJ3670:[NOI2014]动物园(KMP)
    415. [HAOI2009] 旅行
    U10223 Cx大帝远征埃及
    U10206 Cx的治疗
    2741. [济南集训 2017] 掰巧克力
    复习题目汇总 over
    7-20 表达式转换(25 分)
    7-19 求链式线性表的倒数第K项(20 分)(单链表定义与尾插法)
    7-18 银行业务队列简单模拟(25 分)
    7-17 汉诺塔的非递归实现(25 分)(有待改进)
  • 原文地址:https://www.cnblogs.com/mose/p/8472862.html
Copyright © 2011-2022 走看看