sqlserver 跨数据库查询

方法一:

1.通过使用 sp_configure 启用“Ad Hoc Distributed Queries”

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

2.执行查询语句

select * from openrowset( 'SQLOLEDB'
, '目标数据库IP'; 'sa'; 'sa用户密码'
,库名.dbo.表名) 

3.通过使用 sp_configure 关闭“Ad Hoc Distributed Queries”

exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure 

方法二:
1.执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers。

exec sp_addlinkedserver  'mylink','','SQLOLEDB','目标数据库IP'
exec sp_addlinkedsrvlogin 'mylink','false',null,'sa','sa用户密码'

2.执行查询

select * from mylink.库名.dbo.表名

3.删除连接

exec sp_droplinkedsrvlogin 'mylink',null
exec sp_dropserver 'mylink'

sp_addlinkedserver 注册远程数据库实例
exec sp_addlinkedserver ‘InstanceName’
sp_dropserver 删除远程数据库实例
exec sp_dropserver ‘InstanceName’
sp_addlinkedsrvlogin 注册远程实例登陆访问帐户
exec sp_addlinkedsrvlogin ‘InstanceName’, null
sp_droplinkedsrvlogin 删除远程实例登陆访问帐户
EXEC sp_droplinkedsrvlogin ‘InstanceName’,‘UserName’
sp_helpserver 当前实例已注册的可访问的实例(即查看使用sp_addlinkedserver已注册过的实例)
exec sp_helpserver
sys.sysservers 功能同sp_helpserver
select * from sys.sysservers
sys.linked_logins 查看已注册的登陆访问帐户(即查看使用sp_addlinkedsrvlogin已注册过的帐户)
select * from sys.linked_logins
sys.remote_logins 查看已注册的远端访问帐户
select * from sys.remote_logins

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server中,可以通过数据库添加数据的方式将数据插入到多个数据库中。这种数据库添加数据的方法有两种:使用链接服务器或使用数据库事务。 使用链接服务器时,需要建立链接服务器并配置好相关参数。链接服务器可以是同一台机器上的其他实例,也可以是不同的物理机器。在建立链接服务器之后,就可以使用INSERT, UPDATE等语句将数据插入到其他数据库中。例如,如果有一个名为dbName的数据库,其中有一张名为tableName的表,需要将一些数据添加到名为linkedDbName的另一个数据库的名为linkedTableName的表中,可以使用如下的SQL语句: INSERT INTO linkedDbName.linkedTableName(col1, col2, col3) SELECT col1, col2, col3 FROM dbName.tableName WHERE condition; 使用数据库事务时,需要在SQL语句中使用分布式事务。分布式事务是指越多个数据库的事务。在SQL Server中,可以使用BEGIN DISTRIBUTED TRANSACTION语句开始一个分布式事务,并在提交或回滚之前使用INSERT, UPDATE等语句将数据插入到不同的数据库中。例如,需要将数据插入到名为dbName和linkedDbName的两个数据库的名为tableName和linkedTableName的表中,可以使用如下的SQL语句: BEGIN DISTRIBUTED TRANSACTION; INSERT INTO dbName.tableName(col1, col2, col3) VALUES(val1, val2, val3); INSERT INTO linkedDbName.linkedTableName(col1, col2, col3) VALUES(val1, val2, val3); COMMIT TRANSACTION; 总之,SQL Server的数据库添加数据可以使用链接服务器或分布式事务两种方式。具体选择哪种方法,取决于具体情况,包括数据量、数据来源、性能等多方面因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinqi_SG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值