当前位置:网站首页>TSQL–标示列、GUID 、序列
TSQL–标示列、GUID 、序列
2022-07-05 10:13:00 【全栈程序员站长】
–1. IDENTIY 列不能为空,不能设默认值,创建后不能使用ALTER TABLE TableName ALTER COLUMN修改,每张表只能有一个自增列 –2. 查看当前值:SELECT IDENT_CURRENT(‘TableName’), — 查看增量值:SELECT IDENT_INCR(‘TableName’) — 查看原始种子值:SELECT IDENT_SEED(‘TableName’),起始值, TRUNCATE TABLE 后的初始值。 –3. 允许 显式 插入自增列:SET IDENTITY_INSERT TableName ON; 设置为ON后,允许当前回话对自增列插入时指定值,该设置只影响当前回话,并且同一回话中只允许同时修改一张表的IDENTITY_INSERT 属性,对其他表再次设置时会提示:”表 ‘XXX1’ 的 IDENTITY_INSERT 已经为 ON。无法对表 ‘XXX2’ 执行 SET 操作。“,在对自增列显式插入值后,会检查或修改自增列的当前值为整表中最大值。 –4. IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。 SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。@@IDENTITY能获取到由当前语句引发的触发器,内置存储过程等倒置的自增值。 –如对表T1插入引发触发器对表T2也进行插入,@@IDENTITY得到T2的自增值,而SCOPE_IDENTITY获取当前作用域T1的自增值。
–4. 如果要求值在所有表中唯一,可以使用UNIQUEIDENTIFIER,使用NEWID()来获得唯一值。 –5. 为避免GUID作为聚簇索引照成的页面碎片和页拆分,可以使用NEWSEQUENTIALID()来获取自增的GUID: — CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) — 如果考虑安全性和保密性,建议不适用NEWSEQUENTIALID() –6. NEWSEQUENTIALID()只能针对表使用DEFAULT方式来实现。使用 NEWSEQUENTIALID() 生成的每个 GUID 在该计算机上都是唯一的。仅当源计算机具有网卡时,使用 NEWSEQUENTIALID() 生成的 –GUID 在多台计算机上才是唯一的 –7. 序列,2012新特性,数据库级别对象,每次获取后自增。 –============================================= –创建序列 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 } ] [ ; ] –============================================= –获取序列 NEXT VALUE FOR [ database_name . ] [ schema_name . ] sequence_name [ OVER (<over_order_by_clause>) ] –============================================= –获取范围的序列值 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 ] [ ; ]
–============================================= –创建初始值为1递增1的序列 CREATE SEQUENCE dbo.mySquence AS INT INCREMENT BY 1 START WITH 1
–============================================= –获取下个值 SELECT NEXT VALUE FOR dbo.mySquence –============================================= –使用表排序后获取自增序列 SELECT NEXT VALUE FOR dbo.mySquence OVER (ORDER BY C2) AS RID, C2 FROM [dbo].[TB4] –============================================= –可以在列的DEFAULT中使用序列 ALTER TABLE Test.MyTable ADD DEFAULT N’AdvWorks_’ + CAST(NEXT VALUE FOR Test.CounterSeq AS NVARCHAR(20)) FOR IDColumn;
–============================================ –获取4个连续的递增序列,并返回最小值 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 ;
–===================================== –查看当前数据库中的自增列 SELECT * FROM sys.identity_columns
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109933.html原文链接:https://javaforall.cn
边栏推荐
- 《剑来》语句摘录(七)
- 5G NR系统架构
- [JS] array dimensionality reduction
- SAP ui5 objectpagelayout control usage sharing
- 官网给的这个依赖是不是应该为flink-sql-connector-mysql-cdc啊,加了依赖调
- > Could not create task ‘:app:MyTest. main()‘. > SourceSet with name ‘main‘ not found. Problem repair
- Timed disappearance pop-up
- Design and Simulation of fuzzy PID control system for liquid level of double tank (matlab/simulink)
- 【黑马早报】罗永浩回应调侃东方甄选;董卿丈夫密春雷被执行超7亿;吉利正式收购魅族;华为发布问界M7;豆瓣为周杰伦专辑提前开分道歉...
- LDAP概述
猜你喜欢
![[observation] with the rise of the](/img/9a/8bbf98e6aed80638f4340aacec2ea9.jpg)
[observation] with the rise of the "independent station" model of cross-border e-commerce, how to seize the next dividend explosion era?

A high density 256 channel electrode cap for dry EEG

Constraintlayout officially provides rounded imagefilterview

Detailed explanation of the use of staticlayout

Solution of ellipsis when pytorch outputs tensor (output tensor completely)

Fluent generates icon prompt logo widget

Energy momentum: how to achieve carbon neutralization in the power industry?

B站大量虚拟主播被集体强制退款:收入蒸发,还倒欠B站;乔布斯被追授美国总统自由勋章;Grafana 9 发布|极客头条...

How to plan the career of a programmer?

SAP ui5 objectpagelayout control usage sharing
随机推荐
IDEA新建sprintboot项目
Workmanager learning 1
@Jsonadapter annotation usage
[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation
自动化规范检查软件如何发展而来?
Z-blog template installation and use tutorial
Shortcut keys for vscode
RMS to EAP is simply implemented through mqtt
“军备竞赛”时期的对比学习
Constraintlayout officially provides rounded imagefilterview
报错:Module not found: Error: Can‘t resolve ‘XXX‘ in ‘XXXX‘
The most complete is an I2C summary
面试:Bitmap像素内存分配在堆内存还是在native中
[paper reading] kgat: knowledge graph attention network for recommendation
WorkManager学习一
The horizontally scrolling recycleview displays five and a half on one screen, lower than the average distribution of five
Glide Mastery
C function returns multiple value methods
到底谁才是“良心”国产品牌?
Interview: is bitmap pixel memory allocated in heap memory or native