22,209
社区成员
发帖
与我相关
我的任务
分享
-- =============================================
-- Author:
-- Create date: 2010.01.29
-- Description: Generate Table Seque
-- =============================================
ALTER PROCEDURE [dbo].[GetNextPrimaryKeyID]
-- Add the parameters for the stored procedure here
@tableName varchar(40) ,
@FieldName varchar(40)
AS
DECLARE @Next_Value int
DECLARE @SQL nvarchar(4000)
Declare @NextPrimaryKeyID int
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRAN;
lable:
SELECT @NextPrimaryKeyID = NEXT_VALUE
FROM PRIMARY_KEY_SEQ
WHERE UPPER(TABLE_NAME) = UPPER(@tableName) AND
UPPER(PK_NAME) = UPPER(@FieldName);
UPDATE PRIMARY_KEY_SEQ
SET NEXT_VALUE = NEXT_VALUE + 1
WHERE UPPER(TABLE_NAME) = UPPER(@tableName) AND
UPPER(PK_NAME) = UPPER(@FieldName);
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO PRIMARY_KEY_SEQ(TABLE_NAME,PK_NAME,NEXT_VALUE)
VALUES(UPPER(@tableName),UPPER(@FieldName),1);
GOTO lable
END
COMMIT TRAN;
RETURN (@NextPrimaryKeyID);
END