¡¡¡¡
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 ±íʾ×îºóÒ»¸ö²úÉúµÄÖµ¡£Èç¹û´¥·¢ÁËij¸ö´¥·¢Æ÷£¬²¢ÇÒÕâ¸ö´¥·¢Æ÷Ö´ÐÐÏòÁíÒ»¸ö´øÓÐ 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