使用了identify(1,1)的字段,在删除了所有的数据后,怎么知道下一次插入数据时,该字段的

[复制链接]
查看11 | 回复8 | 2014-7-14 11:41:47 | 显示全部楼层 |阅读模式
使用了identify(1,1)的字段,在删除了所有的数据后,怎么知道下一次插入数据时,该字段的值?
比如有一个表, TableA表,有两个字段,ID 和NAME .ID有个属性是identify(1,1),在插入十条记录后,再全部删除,下一次将一条记录插入该表,那ID字段的值,应该是11.
在插入该记录前,该表为空.
请问:"如何知道该表当时最大的ID值"?
请教各位!!!!!!!!
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
在一条INSERT、SELECTINTO或大容量复制语句完成后,@@IDENTITY中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则@@IDENTITY返回NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用@@IDENTITY将返回由触发器产生的最后的标识值。若INSERT或SELECTINTO语句失败或大容量复制失败,或事务被回滚,则@@IDENTITY值不会还原为以前的设置。

在返回插入到表的@@IDENTITY列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY和IDENT_CURRENT函数类似。

@@IDENTITY和SCOPE_IDENTITY将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY只在当前作用域内返回值,而@@IDENTITY不限于特定的作用域。

IDENT_CURRENT不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT返回任何会话和任何作用域中为特定表生成的标识值。有关更多信息,请参见IDENT_CURRENT。

示例
下面的示例向带有标识列的表中插入一行,并用@@IDENTITY显示在新行中使用的标识值。

INSERTINTOjobs(job_desc,min_lvl,max_lvl)
VALUES('Accountant',12,125)
SELECT@@IDENTITYAS'Identity'
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
select max(identitycol) from tablename
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
@@IDENTITY 是返回最后插入的标识值
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
最初由 magicangel 发布
[B]select max(identitycol) from tablename [/B]

楼主说的是:数据已经全部删除后,能查下一个ID


回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
這個函數IDENT_CURRENT('table_name')最好用。
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
如果在VB如何返回这个参数
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
select ident_current('表') 在控件中寫入這個語句就可以啦。
回复

使用道具 举报

千问 | 2014-7-14 11:41:47 | 显示全部楼层
定义一个变量如@tmp,select @tmp=max(identitycol) from tablename也可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行