现在的位置: 首页 > 综合 > 正文

跨数据库的SQL操作

2013年01月13日 ⁄ 综合 ⁄ 共 905字 ⁄ 字号 评论关闭

跨数据库的SQL操作

如果只是临时访问,可以直接用openrowset
SELECT * FROM openrowset('SQLOLEDB'
 ,'10.1.1.10';'sa';'sunshine'
 ,'SELECT * FROM NJS_ERP.dbo.Ecode Where ecode = ''001''') AS a

SELECT * FROM openrowset('SQLOLEDB'
 ,'10.1.1.10';'sa';'sunshine'
 ,NJS_ERP.dbo.Ecode) AS a
/*
SELECT * INTO Temp FROM openrowset('SQLOLEDB'
 ,'10.1.1.10';'sa';'sunshine'
 ,NJS_ERP.dbo.Ecode)

SELECT * FROM Temp
*/

如果经常访问或数据量大,建议用链接服务器

用链接服务器方式一:

--创建链接服务器
EXEC sp_addlinkedserver  'srv_lnk','','SQLOLEDB','10.1.1.10'
EXEC sp_addlinkedsrvlogin 'srv_lnk', 'false', NULL, 'Sa', 'sunshine'
GO

--查询示例
SELECT * FROM srv_lnk.NJS_ERP.dbo.Ecode

--导入示例
--SELECT * INTO 表 FROM srv_lnk.数据库名.dbo.表名
GO
--处理完成后删除链接服务器
EXEC sp_dropserver 'srv_lnk','droplogins'

用链接服务器方式二:

--创建链接服务器
EXEC sp_addlinkedserver 'SERVER',N'SQL Server'
EXEC sp_addlinkedsrvlogin 'SERVER', 'false', NULL, 'Sa', 'sunshine'
GO

--查询示例
SELECT * FROM SERVER.NJS_ERP.dbo.Ecode

--导入示例
--SELECT * INTO 表 FROM srv_lnk.数据库名.dbo.表名
GO
--处理完成后删除链接服务器
EXEC sp_dropserver 'SERVER','droplogins'

抱歉!评论已关闭.