LinkServer--访问远程数据表三种方式
2024-08-26 19:21:48
在TSQL中访问远程数据库有三种方式:
1.OPENROWSET
2.OPENDATASOURCE
3.LinkServer
在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的.
开启Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用LinkServer:
--============================================
--添加LinkServer
EXEC master.dbo.sp_addlinkedserver
@server = N'ServerIP,ServerPort',
@srvproduct=N'SQL Server'
GO
--============================================
--添加LinkServer的登陆账户
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname = N'ServerIP,ServerPort',
@locallogin = NULL , @useself = N'False',
@rmtuser = N'UserName',
@rmtpassword = N'UserPsw'
GO
--============================================
--使用LinkServer访问表
SELECT * FROM [ServerIP,ServerPort].[DB1].[dbo].[TB1]
GO
--===========================================
--使用LinkServer来创建表或执行存储过程
EXEC('
USE DB1;
CREATE TABLE TB1
(
ID INT
)
') AT [ServerIP,ServerPort]
GO
--===========================================
--删除LinkServer
EXEC master.dbo.sp_dropserver
@server=N'ServerIP,ServerPort',
@droplogins='droplogins'
GO
使用OPENROWSET
SELECT T.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
'SELECT * FROM DB1.dbo.TB1') AS T;
使用OPENDATASOURCE
SELECT *
FROM OPENDATASOURCE('SQLNCLI',
'Data Source=London\Payroll;Integrated Security=SSPI')
.DB1.dbo.TB1
最新文章
- 【知乎网】Linux IO 多路复用 是什么意思?
- 由于httpClient调用导致的ESTABLISHED过多和 Connection rest by peer 异常
- Delphi inline编译器优化问题
- UIWebView用法详解及代码分享
- Vue.2.0.5-混合
- 谈谈php中上传文件的处理
- hdoj 2601(判断N=i*j+i+j)
- Mob短信验证的配置的解释
- SIGAR - System Information Gatherer And Reporter
- Servlet编程实例2
- win7和linux下利用命令查看文件md5、sha1、sha256
- react采坑笔记
- final域的内存语义
- 如何使用Scrapy框架实现网络爬虫
- Redis部署与基本操作
- js+jquery检测用户浏览器型号(转)
- python3+socket搭建简易服务器
- android显示TextView文字的倒影效果
- Jquery easyui教程
- Android——sqlite3 基本命令操作