当前位置:网站首页>TSQL – identity column, guid, sequence
TSQL – identity column, guid, sequence
2022-07-05 11:09:00 【Full stack programmer webmaster】
–1. IDENTIY Column cannot be empty , Default value cannot be set , Cannot use after creation ALTER TABLE TableName ALTER COLUMN modify , Each table can only have one auto increment column –2. Check the current value :SELECT IDENT_CURRENT(‘TableName’), — View incremental values :SELECT IDENT_INCR(‘TableName’) — View the original seed value :SELECT IDENT_SEED(‘TableName’), Starting value , TRUNCATE TABLE Initial value after . –3. allow Explicit Insert auto increment column :SET IDENTITY_INSERT TableName ON; Set to ON after , Allow the current callback to specify a value when inserting the auto increment column , This setting only affects the current reply , And only one table can be modified at the same time in the same reply IDENTITY_INSERT attribute , When you set other tables again, you will be prompted :” surface ‘XXX1’ Of IDENTITY_INSERT Have been to ON. Can't check the table ‘XXX2’ perform SET operation .“, After explicitly inserting values for auto incrementing columns , The current value of the auto increment column will be checked or modified to be the maximum value in the whole table . –4. IDENT_CURRENT Not limited by scope and session , And limited to the specified table . SCOPE_IDENTITY and @@IDENTITY Returns the last identity value generated in any table in the current session . however ,SCOPE_IDENTITY Returns only the values inserted into the current scope ;@@IDENTITY Not limited to a specific scope [email protected]@IDENTITY You can get the trigger triggered by the current statement , Built in stored procedures and other inverted self increment . – As for the watch T1 Insert trigger pair table T2 Also insert ,@@IDENTITY obtain T2 Since the appreciation , and SCOPE_IDENTITY Get the current scope T1 Since the appreciation .
–4. If the required value is unique in all tables , have access to UNIQUEIDENTIFIER, Use NEWID() To get the unique value . –5. To avoid GUID Page fragments and page splits as clustered indexes , have access to NEWSEQUENTIALID() To get self increasing GUID: — CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) — If you consider security and confidentiality , Recommendation not applicable NEWSEQUENTIALID() –6. NEWSEQUENTIALID() Only for tables DEFAULT To achieve . Use NEWSEQUENTIALID() Each of the generated GUID It is unique on this computer . Only if the source computer has a network card , Use NEWSEQUENTIALID() Generated –GUID It is the only one on multiple computers –7. Sequence ,2012 New characteristics , Database level objects , Increase automatically after each acquisition . –============================================= – Create sequence CREATE SEQUENCE [schema_name . ] sequence_name [ AS [ built_in_integer_type | user-defined_integer_type ] ] [ START WITH <constant> ] [ INCREMENT BY <constant> ] [ { MINVALUE [ <constant> ] } | { NO MINVALUE } ] [ { MAXVALUE [ <constant> ] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [ <constant> ] } | { NO CACHE } ] [ ; ] –============================================= – Get sequence NEXT VALUE FOR [ database_name . ] [ schema_name . ] sequence_name [ OVER (<over_order_by_clause>) ] –============================================= – Get the sequence value of the range sp_sequence_get_range [ @sequence_name = ] N'<sequence>’ , [ @range_size = ] range_size , [ @range_first_value = ] range_first_value OUTPUT [, [ @range_last_value = ] range_last_value OUTPUT ] [, [ @range_cycle_count = ] range_cycle_count OUTPUT ] [, [ @sequence_increment = ] sequence_increment OUTPUT ] [, [ @sequence_min_value = ] sequence_min_value OUTPUT ] [, [ @sequence_max_value = ] sequence_max_value OUTPUT ] [ ; ]
–============================================= – Create an initial value of 1 Increasing 1 Sequence CREATE SEQUENCE dbo.mySquence AS INT INCREMENT BY 1 START WITH 1
–============================================= – Get next value SELECT NEXT VALUE FOR dbo.mySquence –============================================= – Use the table to sort and get the auto increment sequence SELECT NEXT VALUE FOR dbo.mySquence OVER (ORDER BY C2) AS RID, C2 FROM [dbo].[TB4] –============================================= – It can be listed in DEFAULT Use sequences in ALTER TABLE Test.MyTable ADD DEFAULT N’AdvWorks_’ + CAST(NEXT VALUE FOR Test.CounterSeq AS NVARCHAR(20)) FOR IDColumn;
–============================================ – obtain 4 A continuous increasing sequence , And return the minimum DECLARE @range_first_value sql_variant , @range_first_value_output sql_variant ;
EXEC sp_sequence_get_range @sequence_name = N’dbo.mySquence’ , @range_size = 4 , @range_first_value = @range_first_value_output OUTPUT ;
SELECT @range_first_value_output AS FirstNumber ;
–===================================== – View the auto increment column in the current database SELECT * FROM sys.identity_columns
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/109933.html Link to the original text :https://javaforall.cn
边栏推荐
- 9、 Disk management
- Leetcode 185 All employees with the top three highest wages in the Department (July 4, 2022)
- R3live series learning (IV) r2live source code reading (2)
- 磨砺·聚变|知道创宇移动端官网焕新上线,开启数字安全之旅!
- 使用GBase 8c数据库过程中报错:80000502,Cluster:%s is busy,是怎么回事?
- Scaffold development foundation
- A mining of edu certificate station
- 埋点111
- Cron表达式(七子表达式)
- regular expression
猜你喜欢
购买小间距LED显示屏的三个建议
DGL中的消息传递相关内容的讲解
华为设备配置信道切换业务不中断
Detailed explanation of MATLAB cov function
【Oracle】使用DataGrip连接Oracle数据库
Three suggestions for purchasing small spacing LED display
Broyage · fusion | savoir que le site officiel de chuangyu mobile end est en ligne et commencer le voyage de sécurité numérique!
Huawei equipment configures channel switching services without interruption
关于vray 5.2的使用(自研笔记)(二)
关于vray 5.2的使用(自研笔记)
随机推荐
R3live series learning (IV) r2live source code reading (2)
Web3 Foundation grant program empowers developers to review four successful projects
2022 mobile crane driver examination question bank and simulation examination
iframe
【DNS】“Can‘t resolve host“ as non-root user, but works fine as root
使用bat命令一键启动常用浏览器
web安全
Go语言-1-开发环境配置
Four departments: from now on to the end of October, carry out the "100 day action" on gas safety
基于昇腾AI丨爱笔智能推出银行网点数字化解决方案,实现从总部到网点的信息数字化全覆盖
Scaffold development foundation
Based on shengteng AI Yisa technology, it launched a full target structured solution for video images, reaching the industry-leading level
Broyage · fusion | savoir que le site officiel de chuangyu mobile end est en ligne et commencer le voyage de sécurité numérique!
regular expression
Lazy loading scheme of pictures
Go-2-Vim IDE常用功能
websocket
Lombok makes ⽤ @data and @builder's pit at the same time. Are you hit?
Advanced scaffold development
使用GBase 8c数据库过程中报错:80000502,Cluster:%s is busy,是怎么回事?