如果A,B两库不同机,要注册一个到另一个的连接. 假设各表字段相同,如不同,则选取相同的.字段相同 insert into tableA select * from servernameB.dbB.dboB.talbeB where ...字段不相同 insert into tableA(col1,col2...) select col1,col2... from servernameB.dbB.dboB.talbeB where ...
如过要加上某些特殊字段. 如:日期为当前日期.insert into tableA(col1,date1...) select col1,date1 = getdate(),...from servernameB.dbB.dboB.talbeB where ...
--如果两个表结构完全相同,且没有自动编号、计算公式字段。--在同一个SQL Server实例中,两个数据库之间: insert database2.dbo.表名 select * from database1.dbo.表名 where...--如果两个表结构完全相同,但存在自动编号、或计算公式字段:--在同一个SQL Server实例中,两个数据库之间: insert database2.dbo.表名 (字段列表) select 字段列表 from database1.dbo.表名 where...--这里的字段列表应该排除自动编号字段和公式字段
数据库在同一台机时 select * from a.dbo.a a join b.dbo.a b on a.ID=b.ID在局域网或internet时--创建链接服务器 exec sp_addlinkedserver 'ITSV','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'--查询示例 select * from ITSV.数据库名.dbo.表名 as a join 表名 as b
假设各表字段相同,如不同,则选取相同的.字段相同
insert into tableA select * from servernameB.dbB.dboB.talbeB where ...字段不相同
insert into tableA(col1,col2...) select col1,col2... from servernameB.dbB.dboB.talbeB where ...
如:日期为当前日期.insert into tableA(col1,date1...) select col1,date1 = getdate(),...from servernameB.dbB.dboB.talbeB where ...
insert database2.dbo.表名
select *
from database1.dbo.表名
where...--如果两个表结构完全相同,但存在自动编号、或计算公式字段:--在同一个SQL Server实例中,两个数据库之间:
insert database2.dbo.表名 (字段列表)
select 字段列表
from database1.dbo.表名
where...--这里的字段列表应该排除自动编号字段和公式字段
select * from a.dbo.a a join b.dbo.a b on a.ID=b.ID在局域网或internet时--创建链接服务器
exec sp_addlinkedserver 'ITSV','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'--查询示例
select * from ITSV.数据库名.dbo.表名 as a join 表名 as b
2、用OpenRowSet
3、创建链接服务器,用OpenQuery()
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '192.168.0.11'
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, 'sa', '88888888' --查询示例
select * from ITSV.HISDB.dbo.tmpordercost as a 得到的结果是:
服务器: 消息 7403,级别 16,状态 1,行 5
未能找到 OLE DB 提供程序 'SQLOLEDB ' 的注册表项。
OLE DB 错误跟踪[Non-interface error: Provider not registered.]。这是为何啊?