sql server 2005 跨数据库操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2005 跨数据库操作相关的知识,希望对你有一定的参考价值。
A表中的一个存储过程,要更新B数据库中的几张表中的值,我把存储过程中的每条语句单独拿出来执行没有任何问题,但是放到存储过程中执行没一条执行成功,为什么?
参考技术A 之前有回答过这里只教你如何去跨服务器取数据,触发器自己创建哈,下面的语句是在PC2电脑上执行
有两种方式:
第一种:
insert into table2(table2字段) select table1字段 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source = pc1的IP;User ID = pc1的用户名;Password = pc1的密码'
).[dbo1].[dbo].table1
使用这种方式访问时需要将Ad Hoc Distributed Queries组件开启,开启方法如下:
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
exec sp_configure 'show advanced options',1
reconfigure
使用完成后需关闭,将上面语句中的1改为0.
第二种:
首先创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','pc1的IP'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'pc1的用户名','pc1的密码'
go
使用别名查询
insert table2(table2字段) select table1字段 from [srv_lnk].[db1].[dbo].table1
至于用哪种方式看楼主喜欢了 参考技术B 跨数据库操作的话你要在存储过程里的把另外一个数据库用这种表示方式
服务器名.库名.dbo.表名
如果同是一台机,则服务器名可省略,即只需 库名.dbo.表名
希望对你有帮助:)本回答被提问者和网友采纳 参考技术C 如果是在同一个电脑里的不同数据库的要用 库名.dbo.表名 表示
如:我想在库名为DB1里的T1表插入DB2里的T2表的数据,,,T1,T2结构相同
insert into DB1.dbo.T1
select * from db2.dbo.t2 参考技术D 要操作别的数据库的表,需要在表名前加上数据库名。如:数据库1.dbo.表格1.字段名1 第5个回答 2011-03-14 A表中存储过程中的表名前加 B..试一下
SQL SERVER 跨服务器查询
exec sp_addlinkedserver ‘别名‘, ‘‘, ‘SQLOLEDB‘,‘服务器地址‘
exec sp_addlinkedsrvlogin ‘别名‘,‘false‘,null,‘用户名‘,‘密码‘ ;
在打开后,执行操作,当操作完成后,不再使用时,删除连接
exec sp_dropserver ‘别名‘,‘droplogins‘
本文出自 “温馨梦痕” 博客,请务必保留此出处http://317057112.blog.51cto.com/1361376/1977370
以上是关于sql server 2005 跨数据库操作的主要内容,如果未能解决你的问题,请参考以下文章
我可以通过 SSH 隧道进行 SQL Server 2005 合并复制吗?