sqlserver數(shù)據(jù)庫(kù)最大Id沖突問(wèn)題解決方法之一

在一個(gè)特定的表中保存最大Id,通過(guò)記錄來(lái)取每次的唯一最大值

代碼如下:
CREATE TABLE [dbo].[TbGuidTable](
[TableName] [varchar](50) NOT NULL,
[KeyName] [varchar](20) NOT NULL,
[KeyValue] [varchar](100) NOT NULL
) ON [PRIMARY]

GO

if exists (select * from dbo.sysobjects where id = object_id(N’PCreateGuid’) and OBJECTProperty(id, N’IsProcedure’) = 1)
drop procedure PCreateGuid
GO
————————————
–用途:增加一條記錄 個(gè)人信息
–項(xiàng)目名稱:
–說(shuō)明:
–時(shí)間:2011-7-4 15:34:12,2011-08-15
————————————
CREATE PROCEDURE PCreateGuid
@tableName varchar(50),
@keyname varchar(100),
@guid varchar(100) out
as
if not exists(select * from TbGuidTable where tablename=@tableName and keyname=@keyname)
insert into TbGuidTable (tablename,keyname,keyvalue) values(@tableName,@keyname,10000)
update TbGuidTable set keyvalue=keyvalue+1 where tablename=@tableName and keyname=@keyname
select @guid=cast(keyvalue as varchar) from TbGuidTable where tablename=@tableName and keyname=@keyname
Go

—*****—
declare @tableName varchar(50)
declare @keyname varchar(100)
declare @guid varchar(100)
set @tableName=’tb1′
set @keyname=’def’
execute PCreateGuid @tableName,@keyname,@guid out
print @guid

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員