首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

两台数据库服务器之间表中数据定时导入,该如何处理

2012-03-15 
两台数据库服务器之间表中数据定时导入两台数据库服务器之间表中数据定时导入:1 生产主机GGJBHT 上的thdat

两台数据库服务器之间表中数据定时导入
两台数据库服务器之间表中数据定时导入:

1 生产主机GGJBHT 上的thdata表 定时 往备份机的thdata表中传入数据,用下列方式已创立好连接服务器

EXEC sp_addlinkedserver
  @server='DBVIP',-- 被访问的服务器别名
  @srvproduct='',
  @provider='SQLOLEDB',
  @datasrc='192.168.1.10' --要访问的服务器
 
EXEC sp_addlinkedsrvlogin
  'DBVIP', -- 被访问的服务器别名
  'false',
  NULL,
  'sa', --帐号
  '010' --密码

生产机THDATA表中ID在备份机thdata中没有则就导入,
采取这种思路写入下列代码:

INSERT INTO thdata as a  
SELECT * from DBVIP.GGJBHT.dbo.thdata as b
where b.ID > a.ID 
运行不能通过,怎么写呢?

有别的方式可以实现吗?


[解决办法]

SQL code
INSERT INTO  a   SELECT b.* from thdata as a, DBVIP.GGJBHT.dbo.thdata as bwhere b.ID > a.ID
[解决办法]
SQL code
INSERT INTO  a   SELECT b.* from thdata as b, DBVIP.GGJBHT.dbo.thdata as awhere b.ID > a.ID
[解决办法]
探讨

报错,如下:
消息 208,级别 16,状态 1,第 1 行
对象名 'a' 无效。

[解决办法]
sql 2005以上的话 就用merge
merge需要定义目标表和源表 然后判断
如果目标表有 源表没有 如何如何 等等
具体可以网上搜索一下merge的语法
[解决办法]
INSERT INTO thdata /*你要插入的所在服务器上的数据库*/
SELECT b.* from thdata as b, DBVIP.GGJBHT.dbo.thdata as a
where b.ID > a.ID

[解决办法]
如果数据量小,能完成任务即可。。如果数据量大,要注意性能和技巧
[解决办法]
[color=#FF0000]
SQL code
INSERT INTO thdata   SELECT b.* from thdata as a, DBVIP.GGJBHT.dbo.thdata as bwhere b.ID > a.ID 

热点排行