CREATE PROC dbo.procInsert 
AS
BEGIN TRAN
SET NOCOUNT ON
SET ANSI_WARNINGS OFFINSERT INTO  dbo.主表A select col1,col2,...... from 从表B
IF @@ERROR<>0  GOTO errhandle
COMMIT TRAN
SELECT 1errhandle:
IF @@ERROR<>0
BEGIN
ROLLBACK TRAN
SELECT 0
ENDGO--成功返回1,失敗返回0

解决方案 »

  1.   

    现在要在A表和B表中对应批量INSERT INTO A1表和B1表
    ------------------------------------------------
    这句话不知怎么理解,似有问题。另,请给出表结构。
      

  2.   

    --我个人理解楼主的意思是不是要插入记录到表A和表B,然后表a和b有外键关联?
    --如果是这样,只要先插入主表,再插入从表就可以了啊,不用关联a1和b1的
    create proc procinsert as
    begin
    begin trans
    insert into A select ... from tableA
    insert into B select ... from tableB
    if @@error<>0 rollback tran
    else commit tran
    end
      

  3.   

    to : mgsray(我是新新新新,新来的吧) 
      为什么不关联A1和B1呢?
      外键关联如何处理呢?
    TO ALL :
    我把问题具体一点:
    比如说 
    基本表A
    结构:A_ID(主键,自增加),NAMEA
    基本表B
    结构:B_ID(主键,自增加),NAMEB,A_ID(外键)基本表A#
    结构:A#_ID(主键,自增加),NAMEA#,OtherField1
    基本表B#
    结构:B#_ID(主键,自增加),NAMEB#,A#_ID(外键),OtherField2现在把 把A#,B# 数据中的数据 INSERT 到A,B中(A#对应A,B#对应B)求思路,不胜感激,谢谢各位了
      

  4.   

    --这样插入就行了.--开启标识字段插入功能
    set identity_insert A on
    insert A(A_ID,NAMEA) select A_ID,NAMEA from [A#]
    set identity_insert A offset identity_insert B on
    insert B(B_ID,NAMEB,A_ID) select B_ID,NAMEB,A_ID from [B#]
    set identity_insert B off
      

  5.   

    在A表上做一个触发器,插入A表时同时插入B表
      

  6.   

    to  zjcxc(邹建) :
    这样的话,要是A中的A_ID要是和A#中的A#_ID有重复的怎么办呢?
    TO  zheninchangjiang(我爱燕子):
    我对触发器不了解,在客户端可以可以随意控制触发器么(随意建立和删除)?
      

  7.   

    重复的不可能吧? 因为你的 A#_ID 是主键(否则做不了B表的外键),怎么会重复呢?
      

  8.   

    --如果你的意思是A表已经有数据了,只追加不重复的数据,则改用:--开启标识字段插入功能
    set identity_insert A on
    insert A(A_ID,NAMEA) select A_ID,NAMEA from [A#] aa
    where not exists(select * from A where A_ID=aa.A_ID)
    set identity_insert A offset identity_insert B on
    insert B(B_ID,NAMEB,A_ID) select B_ID,NAMEB,A_ID from [B#]
    set identity_insert B off
      

  9.   

    回复人: Demon88(恶魔) ( ) 信誉:100  2004-10-21 22:05:00  得分: 0  
    这样的话,要是A中的A_ID要是和A#中的A#_ID有重复的怎么办呢?
    重复的你想怎么处理?是要更新A表的这条记录,还是不用管它,还是另外追加一条(id另外取)?
    邹老大的处理是不管它,只插入不重复的数据.
      

  10.   

    我不想更新A表中原有的数据,只是想把A#表中的数据追加进A表,(A表原有数据不动)好象没办法获得这个业务逻辑我已经在客户端解决,不得已为之,谢谢各位老大出主意