日期:2014-05-17  浏览次数:20453 次

SQL Server 2005如何在插入数据后返回自增列
请问一下,SQL Server 2005如何在插入数据后返回自增列,并且自增列前面能加上指定字母标识。比如ES00309 ES00310等。具体有哪几种方法呢?我用的VC ADO访问数据库。
SQL?Server2005 自增列 ADO VC

------解决方案--------------------
DECLARE @ID int

insert into tableName(Col)
values('X')
set @ID=@@IDENTITY
set @ID=SCOPE_IDENTITY()

------解决方案--------------------
如果是批量新增数据时,可用表变量接收数量,或直接用output

DECLARE @ID int
declare @T table(ID int identity ,Col nvarchar(50))
insert into @T(Col)
values('X')
set @ID=@@IDENTITY
set @ID=SCOPE_IDENTITY()

select @ID

go
declare @T table(ID int identity ,Col nvarchar(50))
insert into @T(Col)
output inserted.ID
values('X')

------解决方案--------------------
declare @id int
declare @Str_Return varchar(7)

--insert into tableName(Col) values('X')
-- set @ID=@@IDENTITY 
--如触发器中有其它的insert 含有自增列表的操作,用这个
--set @ID=SCOPE_IDENTITY() 


--测试
set @id=23
--生成ES00309格式
set @Str_Return = convert(varchar(7),@ID)
set @Str_Return = 'ES'+substring('00000',1,(5-len(@Str_Return)))+@Str_Return
print @Str_Return



------解决方案--------------------
引用:
Quote: 引用:

如何实现自编号
http://blog.csdn.net/roy_88/article/details/1424370

谢谢roy_88 这个问题已经解决了。用的这个网址上面的办法:http://zhidao.baidu.com/question/310672889.html
然后惊讶的发现那个人居然也是你额,然后顺便看了下资料,谢谢你帮助了这么多人。
现在还剩最后一个问题,我插入了一条记录之后,如何紧接着获取我刚插入记录的由触发器生成的标识?


 用output可以返回插入ID
需要返回插入ID,最好用存储过程封装处理