SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER Procedure GetMaxID
/* Param List */
@Table varchar(20),
@col varchar(20),
@MaxID bigint output
AS
/******************************************************************************
** File:
** Name: GetMaxID
** Desc: 获得指定表的指定列的累加最大ID值
**
** This template can be customized:
**
** Return values:
**
** Called by:
**
** Parameters:
** Input @Table 表名 Output @MaxID 最大ID
** @col 列名
** ---------- -----------
**
** Date: 06-7-13
*******************************************************************************
** Change History
*******************************************************************************
** Date: Author: Description:
** -------- -------- -------------------------------------------
**
*******************************************************************************/
set nocount on
Declare @SelectString varchar(200)
Set @SelectString='Insert into #temptable select max('+@col+') from ' + @Table + ' WITH (TABLOCKX, HOLDLOCK) '
Create Table #temptable (TempID bigint)
Exec (@SelectString)
Select @MaxID=TempID from #temptable
If @MaxID Is Null Set @MaxID=0
Set @MaxID=@MaxID+1
Drop Table #temptable
set nocount on
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO