手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >深入SQL Server 跨数据库查询的详解
深入SQL Server 跨数据库查询的详解
摘要:语句SELECT*FROM数据库A.dbo.表Aa,数据库B.dbo.表BbWHEREa.field=b.field"DBO"可以省略如SE...

语句

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

【深入SQL Server 跨数据库查询的详解】相关文章:

SQLServer视图的总结

Sql Server 存储过程实例讲解

SQL Server数据库管理常用的SQL和T-SQL语句

.NET Framework SQL Server 数据提供程序连接池

SQL Server 移动系统数据库

查找sqlserver数据库中某一字段在 哪

SQLServer 批量插入数据的两种方法

sql Server 2008 R2还原或删除数据库时总是出错的解决方法

SQLServer 数据集合的交、并、差集运算

关于数据库和SQL Server的若干见解

精品推荐
分类导航