SQL Server 跨服务器查询
2021/8/10 19:36:17
本文主要是介绍SQL Server 跨服务器查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
--查询示例 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
或
第一种方法: --单表查询 select * from OPENDATASOURCE('SQLOLEDB','Data Source=远程实列名;User ID=sa;Password=密码').库名.dbo.表名 --多表关联查询 SELECT A.* FROM OPENROWSET('SQLOLEDB' , '远程实列名' ; 'sa' ; '密码', 库名.dbo.表名1) A LEFT JOIN OPENROWSET('SQLOLEDB' , '远程实列名' ; 'sa' ; '密码', 库名.dbo.表名2) B ON A.ID = B.ID WHERE --条件
或
--先连接远程服务器: EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程实列名;UID=用户;PWD=密码;' exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码' GO --然后我们就可以关联远程服务器中的表进行查询、修改等操作; select * from 别名.库名.dbo.表名 insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法
两台服务器都设置下
1.开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:
1 2 3 4 |
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
|
2.关闭Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:
1 2 3 4 |
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
|
SQL Server Management Studio 登录后修改
这篇关于SQL Server 跨服务器查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)