>  기사  >  데이터 베이스  >  mssqlserver中最大ID冲突解决办法

mssqlserver中最大ID冲突解决办法

WBOY
WBOY원래의
2016-06-07 17:48:481064검색

本文章介绍了关于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
------------------------------------
--用途:增加一条记录  个人信息
--项目名称:
--说明:
--时间: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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.