本文章介绍了关于mssqlserver中最大ID冲突解决办法,有需要的朋友可以参考一下。
在一个特定的表中保存最大Id,通过记录来取每次的唯一最大值。
代码如下 | 复制代码 |
CREATE TABLE [dbo].[TbGuidTable]( [TableName] [varchar](50) NOT NULL, [KeyName] [varchar](20) NOT NULL, [KeyValue] [varchar](100) NOT NULL ) ON [PRIMARY] GO if exists ( * from dbo.sysobjects where id = object_id(N’PCreateGuid’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1) drop procedure PCreateGuid GO ———————————— –用途:增加一条记录 个人信息 –项目名称:本文来源gaodai$ma#com搞$代*码6网 –说明: –时间: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 |