¼ò½é
SequenceNumberÊÇSQL Server2012ÍÆ³öµÄÒ»¸öÐÂÌØÐÔ¡£Õâ¸öÌØÐÔÔÊÐíÊý¾Ý¿â¼¶±ðµÄÐòÁкÅÔÚ¶à±í»ò¶àÁÐÖ®¼ä¹²Ïí¡£¶ÔÓÚijЩ³¡¾°»á·Ç³£ÓÐÓ㬱ÈÈ磬ÄãÐèÒªÔÚ¶à¸ö±íÖ®¼ä¹«ÓÃÒ»¸öÁ÷Ë®ºÅ¡£ÒÔÍùµÄ×ö·¨ÊǶîÍ⽨Á¢Ò»¸ö±í£¬È»ºó´æ´¢Á÷Ë®ºÅ¡£¶øÐ²åÈëµÄÁ÷Ë®ºÅÐèÒªÁ½¸ö²½Ö裺
1.²éѯ±íÖÐÁ÷Ë®ºÅµÄ×î´óÖµ
2.²åÈëÐÂÖµ£¨×î´óÖµ+1£©
ÏÖÔÚ£¬ÀûÓÃSQL Server2012ÖеÄSequence.ÕâÀà²Ù×÷½«»á±äµÃ·Ç³£ÈÝÒס£
SequenceNumberµÄ»ù±¾¸ÅÄî
SequenceNumberµÄ¸ÅÄî²¢²»ÊÇÒ»¸öиÅÄOracleÔç¾ÍÒѾʵÏÖÁË£¨http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6015.htm£©¡£ÓëÒÔÍùµÄIdentityÁв»Í¬µÄÊÇ¡£SequenceNumberÊÇÒ»¸öÓë¹¹¼Ü°ó¶¨µÄÊý¾Ý¿â¼¶±ðµÄ¶ÔÏ󣬶ø²»ÊÇÓë¾ßÌåµÄ±íµÄ¾ßÌåÁÐËù°ó¶¨¡£ÕâÒâζ×ÅSequenceNumber´øÀ´¶à±íÖ®¼ä¹²ÏíÐòÁкŵıéÀúÖ®Í⣬»¹»á´øÀ´Èçϲ»ÀûÓ°Ïì:
ÓëIdentityÁв»Í¬µÄÊÇ£¬Sequence²åÈë±íÖеÄÐòÁкſÉÒÔ±»Update,³ý·Çͨ¹ý´¥·¢Æ÷À´½øÐб£»¤
ÓëIdentityÁв»Í¬£¬SequenceÓпÉÄܲåÈëÖØ¸´Öµ£¨¶ÔÓÚÑ»·SequenceNumberÀ´Ëµ£©
Sequence½ö½ö¸ºÔð²úÉúÐòÁкţ¬²¢²»¸ºÔð¿ØÖÆÈçºÎʹÓÃÐòÁкţ¬Òò´Ëµ±Éú³ÉÒ»¸öÐòÁкű»RollbackÖ®ºó£¬Sequence»á¼ÌÐøÉú³ÉÏÂÒ»¸öºÅ£¬´Ó¶øÔÚÐòÁкÅÖ®¼ä²úÉú¼ä϶¡£
SequenceNumberµÄÓ÷¨
SequenceNumberÔÚMSDNÖж¨ÒåµÄÔÐÍÈç´úÂë1Ëùʾ¡£
CREATE SEQUENCE [schema_name . ] sequence_name
[ AS [ built_in_integer_type | user-defined_integer_type ] ]
[ START WITH ]
[ INCREMENT BY ]
[ { MINVALUE [ ] } | { NO MINVALUE } ]
[ { MAXVALUE [ ] } | { NO MAXVALUE } ]
[ CYCLE | { NO CYCLE } ]
[ { CACHE [ ] } | { NO CACHE } ]
[ ; ]
´úÂë1.SequenceµÄ´´½¨ÔÐÍ
ÓÉ´úÂë1¿´ÒÔ¿´µ½,²ÎÊýÏà¶Ô±È½Ï¼òµ¥¡£´ÓÖ¸¶¨Êý¾ÝÀàÐÍ£¨INT¼æÈÝ£©µ½¿ªÊ¼¼ÆÊýµã£¬²½³¤£¬×î´óÖµºÍ×îСֵ£¬ÊÇ·ñÑ»·ºÍÊÇ·ñ»º´æ¼¸¸ö²ÎÊýÀ´ÉèÖÃSequence¡£
ÏÂÃæÍ¼1´´½¨ÁËÒ»¸ö¼òµ¥µÄSequence¡£

ͼ1.´´½¨Ò»¸ö¼òµ¥µÄSequence²¢½øÐÐʹÓÃ
´Ëʱ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýSQL Server 2012ÐÂÔöµÄÊÓͼsys.sequencesÀ´¿´µ½¸Õ²Å´´½¨³É¹¦µÄSequence,Èçͼ2Ëùʾ.

ͼ2.sys.sequencesÊÓͼ
µ±È»ÎÒÃÇ¿ÉÒÔÕâ¸öÐòÁа´ÕÕ˳Ðò²åÈë±í,Èçͼ3Ëùʾ¡£

ͼ3.ÔÚµ¥±íÖвåÈëÐòÁÐ
¶øSequenceNumber×îÖØÒªµÄ¹¦ÄÜÊÇÔÚ¶à±í¼ä¹²ÏíÐòÁкţ¬Èçͼ4Ëùʾ¡£

ͼ4.¶à±íÖ®¼äÀûÓÃSequence¹²ÏíÐòÁкÅ
Ç°ÃæÍ¼2¿ÉÒÔ¿´µ½£¬Èç¹ûÎÒÃDz»Ö¸¶¨SequenceµÄÉÏÏÞºÍÏÂÏÞ£¬ÔòĬÈÏʹÓÃËùÖ¸¶¨Êý¾ÝÀàÐ͵Ä×î´óÖµºÍ×îСֵ×÷ΪÉÏÏÞºÍÏÂÏÞ£¨Èçͼ2INTÀàÐ͵ĵÄÉÏÏÂÏÞ£©.µ±´ïµ½ÉÏÏߺ󣬿ÉÒÔÖ¸¶¨Ñ»·À´ÈÃSequence´ïµ½ÉÏÏÞºó´ÓÖ¸¶¨µÄ¿ªÊ¼ÖµÖØÐ¿ªÊ¼Ñ»·¡£Èçͼ5Ëùʾ¡£

ͼ5.SequenceÉèÖÃÉÏÏÞÏÂÏÞºÍÑ»·
»¹¿ÉÒÔͨ¹ýÐÞ¸ÄSequence½«Æä³õʼֵָ¶¨ÎªÒ»¸öÌØ¶¨Öµ£¬Èçͼ6Ëùʾ¡£

ͼ6.ÖØÖÃSequenceµÄÖµ
SequenceÒ»¸öÐèҪעÒâµÄÇé¿öÊÇSequenceÖ»¸ºÔðÉú³ÉÐòÁкţ¬¶ø²»¹ÜÐòÁкÅÈçºÎʹÓã¬Èç¹ûÊÂÎñ²»³É¹¦»ò»Ø¹ö£¬SequenceNumberÈÔÈ»»á¼ÌÐøÏòºóÉú³ÉÐòÁкÅ,Èçͼ7Ëùʾ¡£

ͼ7.Sequence½ö½ö¸ºÔðÉú³ÉÐòÁкÅ
ÎÒÃÇ»¹¿ÉÒÔΪSequenceÖ¸¶¨»º´æÑ¡ÏʹµÃ¼õÉÙIO£¬±ÈÈ磬ÎÒÃÇÖ¸¶¨CacheÑ¡ÏîΪ4£¬Ôòµ±Ç°µÄSequenceÓÉ1Ôö³¤¹ý4ºó£¬SQL Server»áÔÙ·ÖÅä4¸ö¿Õ¼ä±äΪ´Ó5µ½8£¬µ±·ÖÅäµ½9ʱ£¬SQL Server¼ÌÐøÕâÒÔÑ»·£¬Èç¹û²»Ö¸¶¨CacheÖµ£¬ÔòÖµÓÉSQL Server½øÐзÖÅä¡£Ò»¸ö¼òµ¥µÄÀý×ÓÈçͼ8Ëùʾ¡£

ͼ8.ΪSequenceÉèÖÃCacheÑ¡Ïî
×ܽá
±¾ÎĽ²ÊöÁËSequenceNumberµÄ¼òµ¥Ó÷¨¡£SequenceÊÇÒ»¸ö±È½Ï·½±ãµÄ¹¦ÄÜ£¬Èç¹ûʹÓÃÍ×µ±£¬½«»á´ó´ó¼õÉÙ¿ª·¢¹¤×÷ºÍÌáÉýÐÔÄÜ¡£
×÷Õß ËÎ ½£