设为首页   加入最爱           最新更新:全方位英文文章资料库
 
资料坊搜索: 标题 全文     
使用@IDENTITY
   首页>>YesizeCOM>>电脑技能坊>>ASP>>正文       
 
广告招租,e-mail:yesize@hotmail.com

广告招租,e-mail:yesize@hotmail.com


基本知识

1. IDENTITY 列不能由用户直接更新,它是由系统自动维护的。

2.该列数据类型必须为数值型:int, smallint, tinyint, decimal or numeric with scale 0。

3.该列不能为 null。

4.不能在该列上设置缺省值。

5.递增量只能为整形(比如:1,2,-3)。不能为小数,也不能为0。

6.基值(种子值 seed)可以由用户设置,缺省值为1。

理解 @@IDENTITY

@@IDENTITY 返回最后一个插入 IDENTITY 的值,这些操作包括:INSERT, SELECT INTO,或者 bulk copy。如果在给没有 IDENTITY 列的其他表插入记录,系统将其置为 null。如果有多行记录插入到 IDENTITY 表中,@@IDENTITY 表示最后一个产生的值。如果触发了某个触发器,并且这个触发器执行向另一个带有 IDENTITY 列的表的插入操作,@@IDENTITY 将返回这个由触发器产生的值。如果这个触发器插入的表中不包含 IDENTITY 列,那么 @@IDENTITY 将为 null。如果插入操作失败,@@IDENTITY 值依然会增加,所以 IDENTITY 不保证数据的连续性。

@@IDENTITY 是当前连接的全局变量,只对当前连接有效。也就是说,如果断开连接再重新连接后,@@IDENTITY 为 null。以 ADO 来说,@@IDENTITY 在 Connection 对象打开和关闭期间是有意义的,即在 Connection 对象的存在范围内有效。在 MTS 组件中,从打开连接到显式的关闭连接(Connection.Close)或者到调用了 SetAbort,SetComplete之前,在这期间,@@IDENTITY 有意义。

使用 Truncate table 语句会使 IDENTITY 列重新开始计算。

得到 @@IDENTITY 的值

有三种方法(以下代码均使用 VBScript)

方法一:

Dim Conn, strSQL, Rs
Set Conn = CreateObject("ADODB.Connection")
Open a connection to the database
Conn.Open("DSN=myDSN;UID=myUID;PWD=myPWD;")

Insert a new record into the table
strSQL = "INSERT INTO mtTable (columnName) VALUES (something)"

Execute the SQL statement
Conn.Execute(strSQL)

Get the @@IDENTITY.
strSQL = "SELECT @@IDENTITY AS NewID"
Set Rs = Conn.Execute(lsSQL)
NewID = Rs.Fields("NewID").value

Close the connection
Conn.Close()
Set Conn = Nothing

方法二(仅限于 ADO 2.0 以上):

Dim Conn, strSQL, Rs
Set Conn = CreateObject("ADODB.Connection")
Open a connection to the database
Conn.Open("DSN=myDSN;UID=myUID;PWD=myPWD;")

Insert a new record into the table
lsSQL = "INSERT INTO myTable (columnName) VALUES (something);" &_
"SELECT @@IDENTITY AS NewID;"

Execute the SQL statement
Set Rs = Conn.Execute(lsSQL)

Get the second resultset into a RecordSet object
Set Rs = Rs.NextRecordSet()

Get the inserted ID
NewID = Rs.Fields("NewID").value

Close the connection
Conn.Close()
Set Conn = Nothing

方法三:

Dim Conn, strSQL, Rs
Set Conn = CreateObject("ADODB.Connection")
Open a connection to the database
Conn.Open("DSN=myDSN;UID=myUID;PWD=myPWD;")

Insert a new record into the table
strSQL = "SET NOCOUNT ON;" &_
"INSERT INTO myTable (columnName) VALUES (something);" &_
"SELECT @@IDENTITY AS NewID;"

Execute the SQL statement
Set Rs = Conn.Execute(lsSQL)

Get the inserted ID
NewID = Rs.Fields("NewID").value

Close the connection
Conn.Close()
Set Conn = Nothing


上一篇:在linux上用ASP 下一篇:在程序中直接设定待连接的数据库

版权说明:作品来源于网上,版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在3个工作日内删除。yesize@hotmail.com
  热门小游戏分类 
射击小游戏 连连看小游戏
台球小游戏 成人小游戏
CS小游戏 化妆小游戏
赛车小游戏 休闲小游戏
篮球小游戏 换装小游戏
儿童小游戏 牛牛小游戏
麻将小游戏 冒险小游戏
美媚小游戏 益智小游戏
体育小游戏  
Society Recreation & Sports
Travel & Leisure Communications
Vehicles Computers
Fashion Arts & Entertainment
Reference & Education Disease & Illness
Writing & Speaking Politics
Product Reviews Food & Beverage
Finance Internet Business
Self Improvement Home & Family
Health & Fitness Business
最新更新内容
警惕“公务员报考热”背
公务员考试不是丈母娘考
一名新公务员的自白:我
公务员考脑筋急转弯与挂
北努斗:2006行政能力测
大讨论:06行测BT题目大
过来人回忆:当年,我也
一家之言:公务员热折射
公务员考试申论要是有正
数十万大学生走进公务员
      粤ICP备05005424         Copyright ©2000 - 2004 Yesize.COM