表1中有x,y,z三个字段,
如何在插入数据的时候,x能够自动加1。x不能设为自增字段。

解决方案 »

  1.   

    2005以后:
    select row_number() id,x,y,z from 表1
      

  2.   

    1. 使用存储过程解决: y,z作为变量给入存储过程,每次插入都要调用存储过程, x的值在存储过程中获取
    2. 使用触发器解决: 当insert的时候, update插入的值,但是y,z如果有重复项就不能这么做了.总而言之: x不能设为自增字段,解决的方法都不太保险.
      

  3.   


    begin tran
    declare @cMaxID int
    select @cMaxID=MAX(X)+1  FROM 表A WITH(xLOCK) 
    INSERT 表A (X,Y,Z)
    SELECT @cMaxID,'Y','Z'
    commit tran