日期:2014-05-17 浏览次数:20623 次
/*不同服务器数据库之间的数据操作*/??
--创建链接服务器
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? --把本地表导入远程表