IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_INSERT_STK_SYNC_RECORD') DROP PROCEDURE dbo.PROC_INSERT_STK_SYNC_RECORD; GO CREATE PROCEDURE PROC_INSERT_STK_SYNC_RECORD @newId varchar(100) ,@oId varchar(100) ,@itemNo varchar(100) ,@declaId varchar(100) ,@syncId varchar(100) ,@status int AS BEGIN UPDATE T_STK_INVENTORY set FBILLNO = @itemNo ,FSTATUS = @status WHERE FID = @oId; /*第一步,查看报错表的当前种子值*/ DBCC CHECKIDENT('z_STK_SYNC_RECORD', NORESEED) /*第二步,查看报错表的主键最大值*/ DECLARE @FID bigint SELECT @FID=ISNULL(MAX(FID),100001)+1 FROM t_STK_SYNC_RECORD SELECT @FID /*第三步,更新种子值(更新前对比第一步和第二步获取的值,如果第一步获取的种子值更大,则无需更新)*/ DBCC CHECKIDENT('z_STK_SYNC_RECORD', RESEED, @FID) INSERT INTO T_STK_SYNC_RECORD ( FID,FSTOCKORGID,FKEEPERTYPEID,FKEEPERID,FOWNERTYPEID,FOWNERID, FSTOCKID,FSTOCKLOCID,FAUXPROPID,FSTOCKSTATUSID,FLOT,FBOMID,FMTONO, FPROJECTNO,FPRODUCEDATE,FEXPIRYDATE,FBASEUNITID,FBASEQTY,FBASELOCKQTY, FSECQTY,FSECLOCKQTY,FSTOCKUNITID,FMATERIALID,FQTY,FLOCKQTY,FSECUNITID ,FBASEAVBQTY,FAVBQTY,FSECAVBQTY,FUPDATETIME,FISEFFECTIVED ,FITEMNO,FOSTKID,FDeclaId,FSyncId,FSyncDateTime ) SELECT @FID,FSTOCKORGID,FKEEPERTYPEID,FKEEPERID,FOWNERTYPEID,FOWNERID, FSTOCKID,FSTOCKLOCID,FAUXPROPID,FSTOCKSTATUSID,FLOT,FBOMID,FMTONO, FPROJECTNO,FPRODUCEDATE,FEXPIRYDATE,FBASEUNITID,FBASEQTY,FBASELOCKQTY, FSECQTY,FSECLOCKQTY,FSTOCKUNITID,FMATERIALID,FQTY,FLOCKQTY,FSECUNITID ,FBASEAVBQTY,FAVBQTY,FSECAVBQTY,FUPDATETIME,FISEFFECTIVED ,@itemNo,FID,@declaId,@syncId,getdate() FROM T_STK_INVENTORY WHERE FID = @oId END