Sql server sql server中的标识?
在sql server中,我创建了一个表,其列id为int with identity,第二个是name varchar,我创建了一个用于插入的proc,并写入一条语句,在插入记录后,我希望插入的记录id可用@identity,但奇怪的是@identity显示了更多的行,但在表中,并没有太多的记录,重复的次数更少。我的程序是Sql server sql server中的标识?,sql-server,Sql Server,在sql server中,我创建了一个表,其列id为int with identity,第二个是name varchar,我创建了一个用于插入的proc,并写入一条语句,在插入记录后,我希望插入的记录id可用@identity,但奇怪的是@identity显示了更多的行,但在表中,并没有太多的记录,重复的次数更少。我的程序是 alter proc usp_test123 as begin set nocount on; in
alter proc usp_test123
as begin
set nocount on;
insert into test123 values('sasi')
select @@IDENTITY
end
您的意思是返回的标识可以是10,而表中只有8行吗
identity
列不保证连续。如果行被删除,或者执行插入操作的事务被回滚,则序列中将缺少数字
作为旁注,您应该使用
SCOPE\u IDENTITY()
而不是@@IDENTITY
<代码>@@IDENTITY返回最近插入的行的id。如果在插入到的表上有触发器,则将获得触发器插入的最新行SCOPE\u IDENTITY()
获取在同一代码作用域中生成的最新标识。您的意思是返回的标识可以是10,而表中只有8行吗
identity
列不保证连续。如果行被删除,或者执行插入操作的事务被回滚,则序列中将缺少数字
作为旁注,您应该使用
SCOPE\u IDENTITY()
而不是@@IDENTITY
<代码>@@IDENTITY返回最近插入的行的id。如果在插入到的表上有触发器,则将获得触发器插入的最新行SCOPE\u IDENTITY()
获取在同一代码范围内生成的最新标识。请重新阅读您的问题。这没有道理。请重新阅读您的问题。谢谢你的回答,安德斯,有什么明确的解释吗?谢谢你的回答,安德斯,有什么明确的解释吗