INSERT INTO Table_3(Field_1,Field_2)
SELECT Field1,Field2 FROM Table_1 CROSS JOIN Table_2我希望如果Table_1 ,Table_2里的数据有更改和新增,Table_3也能随之更新和增加,但是Table_3里Field_1和Field_2联合唯一,请问Update和Insert具体应该怎么写

解决方案 »

  1.   

    这个需求要在table1和table2上建触发器了
    要么就是在程序入口处对插入和更新前做判断,记录到table3
      

  2.   

    Field1,Field2最好是1,2表的主键,否则很难判断
      

  3.   

    假设field_1 是 table1里的,另一个是table_2里的:
    INSERT INTO Table_3(Field_1,Field_2)
    SELECT Field1,Field2 FROM Table_1 CROSS JOIN Table_2
    where not exists(select 1 from table_3 where field_1=table_1.field1 or field_2=table_2.field2)
      

  4.   

    把T3作為視圖不就行了Create view Table_3
    as
    SELECT Field1,Field2 FROM Table_1 CROSS JOIN Table_2
      

  5.   

    用触发器实现,update t3 set t3.Field_1=tn.Field_1
    from Table_3 t3
    inner join deleted to on t3.Field_1=to.Field_1
    inner join inserted tn on to.[主键]=tn.[主键]
      

  6.   

    貌似没必要用到table_3表.
    需要的查询一下即可.
    SELECT Field1,Field2 FROM Table_1 CROSS JOIN Table_2或者如4所说,做个视图即可.
    create view my_view
    as
    SELECT Field1,Field2 FROM Table_1 CROSS JOIN Table_2