有一个商品表,字段有priductId(主键),priductName,productCode,等。商品规格表(priductId,Specifications(规格)),商品描述表(priductId,Description(描述)),等等表。
现在插入一条商品信息,也同事要设置商品规格和商品描述表的数据。
插一条商品信息同时插入其他表的信息,要写一个存储过程。
思路我就想出来,就是不会写,思路:插入商品信息,把插入的id拿出来再插入其他表,用事务来写,请大家指教,
商品信息表priductId是自增列。

解决方案 »

  1.   

    SQL出入数据后返回刚插入数据的主键值,语句如下:
    insert into Position(Title,Level,Description) values('aaaa',5,'dfjk'); select @@IDENTITY AS 'identity';
      

  2.   

    inert..
    select @@identity
    事务处理
    先从表再主表
      

  3.   

    简单啊, select @@identity
      

  4.   

    @@identity就是纪录上一条插入语句 所产生的自增id。记得要用事务控制,如果从表插入错误,来带主表一起回滚。
      

  5.   

    个人建议不要存贮过程,上面的即为回答的很清楚了,sql语句插入 select @@identity  用它获取id然后再程序里面用C#写事物
      

  6.   

    我也知道用select @@identity 或触发器啊··
    就是没有一个给出例子。
    晕透了。
      

  7.   

    BEGIN TRY
      declare @ProductId int
      begin tran   --开始事务
      -- 插入商品信息
      Insert Tab1(productName,productCode)
      Values(@productName,@productCode)
      -- 插入商品规格
      select @productId=@@IDENTITY
      Insert Tab2(productId,Specifications)    
      Values(@productId, @Specifications)
      --其他语句
              
      commit tran  --提交事务 
      return 1                 
    END TRY    
    BEGIN CATCH
      rollback tran
      return 0
    END CATCH