• sql server 跨数据库执行sql语句


    /*不同服务器数据库之间的数据操作*/


    --创建链接服务器 

    exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 

    exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' 

    --查询示例 

    select * from ITSV.数据库名.dbo.表名 

    --导入示例 

    select * into 表 from ITSV.数据库名.dbo.表名 

    --以后不再使用时删除链接服务器 

    exec sp_dropserver 'ITSV ', 'droplogins '

     
    --连接远程/局域网数据(openrowset/openquery/opendatasource) 

    --1、openrowset 


    --查询示例 

    select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 


    --生成本地表 

    select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 


    --把本地表导入远程表 
    insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
    select *from 本地表 


    --更新本地表 

    update b  set b.列A=a.列A 
    from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b  on a.column1=b.column1 


    --openquery用法需要创建一个连接 
    --首先创建一个连接创建链接服务器 

    exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '

    --查询 

    select *  FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') 

    --把本地表导入远程表 

    insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') 

    select * from 本地表 

    --更新本地表 

    update b  set b.列B=a.列B  FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a  
    inner join 本地表 b on a.列A=b.列A

     
    --3、opendatasource/openrowset 
    SELECT *  FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
    --把本地表导入远程表

  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/RichShen/p/2608250.html
Copyright © 2020-2023  润新知