我有两个表b1,b2  字段基本相同。
b1
 id  st name  pt
b2
 id name pt不过这两个表不在一起,我要把b1的内容导入b2中。还有就是b1表是时时更新的,(不断增加并更新PT字段)所以,b2要更据b1.pt字段更新b2.pt字段内容,及增加新的内容。如何来写????(我的数据库现有9100条记录,并以每天几百条的方式增加,用循环的方式是不行的!!!)谢谢!!!

解决方案 »

  1.   

    pt是不是跟时间有关系?
    这个问题不难解决啊
    如果PT跟时间没关系,那就在B1表中定义一个更新时间字段
    定时循环扫描,检查B1表中有没有自上次检查过之后更新的内容
    按更新的时间顺序依次把数据更新到B2表就可以了
      

  2.   

    不明白为什么循环不可以用
    如果B1的结构不可以更改,又只有一个是日期的字段
    那你只能每天更新一次了
    就是每天检查B1上一天更新的内容,相应更新B2表
    这个用一个游标就可以做完了,不知道你说的循环是什么意思
      

  3.   

    我现在对插入数据每问题,还可以用,我使用判断b1现有多少条和b2比较,然后插入b2。
    可对pt的修改就不行了。
    b1 用的是oracle 在另一台机子上,b2用的是sql2000
      

  4.   

    jiezhi(相逢何必曾相识) 数据库复制?
      

  5.   

    这样是不行的,我要更具b1.pt内容更新b2.pt 字段以前得记录
    比方说:
    b1 有
    1001 蔬菜  白菜  已买
    而b2为
    1001 蔬菜  白菜  没有就得把“没有” 改为“已买”,这样的记录不可能一次就要改9000多。
      

  6.   

    用下面一条语句吧B1的数据导入到B2中
    insert into b2 select * from B2
    同步表数据的方法写一个触发器为B1
    CREATE TRIGGER [aa] ON [b1] 
    FOR INSERT, UPDATE, DELETE 
    AS
      declare @id  char(10),
              @name  char(10),
              @pt   char(10)
      select @id=id, @name=name, @pt=pt from inserted
      insert into b2 values(@id,@name,@pt)
      
      

  7.   

    或者
    CREATE TRIGGER [aa] ON [b1] 
    FOR INSERT, UPDATE, DELETE 
    AS
      insert into b2 (id,name,pt) select * from inserted