深入SQL Server 跨数据库查询的详解

时间:2024-01-25 13:25:42 

语句
SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field
"DBO"可以省略 如
SELECT * FROM 数据库A..表A a, 数据库B..表B b WHERE a.field=b.field

SqlServer数据库:
--这句是映射一个远程数据库
EXEC sp_addlinkedserver '远程数据库的IP或主机名',N'SQL Server'
--这句是登录远程数据库
EXEC sp_addlinkedsrvlogin '远程数据库的IP或主机名', 'false', NULL, '登录名', '密码'
--登录后,可以用以下格式操作远程数据库中的对象
select * from [远程数据库的IP或主机名].[数据库名].[dbo].[表名]
insert into openrowset('sqloledb','192.168.0.100';'sa';'10060','select * from knss2009.dbo.yw_kck') select * from yw_kck

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

不同服务器数据库之间的数据操作
--创建链接服务器
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
--把本地表导入远程表
insert opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名
select * from

标签:sqlserver跨库查询
0
投稿

猜你喜欢

  • Go内存节省技巧简单实现方法

    2024-04-27 15:25:05
  • Go 加密解密算法小结

    2024-04-26 17:29:00
  • PHP对战ASP:这还值得讨论吗

    2008-04-16 14:19:00
  • python 自动化偷懒的四个实用操作

    2023-11-19 08:49:48
  • Finished with error:Navicat运行SQL文件报错的解决

    2024-01-28 01:40:03
  • PyTorch一小时掌握之神经网络气温预测篇

    2022-07-30 23:52:19
  • IE7的web标准之道 Ⅲ

    2008-08-20 12:55:00
  • Python 如何实现数据库表结构同步

    2024-01-21 16:38:44
  • PyQt5创建一个新窗口的实例

    2021-12-31 02:49:44
  • mysql 数据类型TIMESTAMP

    2024-01-17 17:04:57
  • pytorch+sklearn实现数据加载的流程

    2022-05-15 14:44:27
  • 利用python脚本如何简化jar操作命令

    2021-02-12 11:08:15
  • 解析php session_set_save_handler 函数的用法(mysql)

    2023-11-17 21:58:28
  • python获取指定时间段内特定规律的日期列表

    2021-02-09 02:16:25
  • python制作的天气预报小工具(gui界面)

    2022-04-03 17:20:42
  • 对numpy Array [: ,] 的取值方法详解

    2023-02-05 17:33:23
  • js constructor的实际作用分析

    2024-02-25 01:41:31
  • python破解bilibili滑动验证码登录功能

    2023-04-10 06:03:05
  • Windows下安装Django框架的方法简明教程

    2021-06-26 20:26:13
  • python封装对象实现时间效果

    2022-10-30 16:14:01
  • asp之家 网络编程 m.aspxhome.com