当前位置:网站首页>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
边栏推荐
- 重磅:国产IDE发布,由阿里研发,完全开源!
- 微信小程序中,从一个页面跳转到另一个页面后,在返回后发现页面同步滚动了
- CSDN always jumps to other positions when editing articles_ CSDN sends articles without moving the mouse
- 官网给的这个依赖是不是应该为flink-sql-connector-mysql-cdc啊,加了依赖调
- WorkManager学习一
- 手机厂商“互卷”之年:“机海战术”失灵,“慢节奏”打法崛起
- 5G NR系统架构
- 【Vite】1371- 手把手开发 Vite 插件
- flink cdc不能监听mysql日志,大家遇到过这个问题吧?
- 5g NR system architecture
猜你喜欢
How did automated specification inspection software develop?
Atcoder beginer contest 254 "e BFS" f st table maintenance differential array GCD "
[paper reading] ckan: collaborative knowledge aware autonomous network for adviser systems
How do programmers live as they like?
Redis如何实现多可用区?
伪类元素--before和after
ConstraintLayout的流式布局Flow
“军备竞赛”时期的对比学习
程序员如何活成自己喜欢的模样?
Universal double button or single button pop-up
随机推荐
想请教一下,十大券商有哪些?在线开户是安全么?
Constrained layout flow
报错:Module not found: Error: Can‘t resolve ‘XXX‘ in ‘XXXX‘
Click the picture in the mobile browser and the picture will not pop up
SAP ui5 objectpagelayout control usage sharing
La vue latérale du cycle affiche cinq demi - écrans en dessous de cinq distributions moyennes
The most complete is an I2C summary
ByteDance Interviewer: how to calculate the memory size occupied by a picture
vscode的快捷键
Tianlong Babu TLBB series - single skill group injury
微信小程序中,从一个页面跳转到另一个页面后,在返回后发现页面同步滚动了
Design of stepping motor controller based on single chip microcomputer (forward rotation and reverse rotation indicator gear)
SLAM 01.人类识别环境&路径的模型建立
《微信小程序-基础篇》小程序中的事件与冒泡
Z-blog template installation and use tutorial
Who is the "conscience" domestic brand?
Tianlong Babu TLBB series - questions about skill cooling and the number of attack ranges
Using directive in angualr2 to realize that the picture size changes with the window size
How did automated specification inspection software develop?
@SerializedName注解使用