SQLSERVER 里实现ORACLE里的Sequence 的功能(亲自实践)

SQLSERVER 里实现ORACLE里的Sequence 的功能(亲自实践),第1张

概述ORACLE里的Sequence 可以实现自动增加的功能,在SQLSERVER 中通过定义项目的属性 IDENTITY 来实现 在下面的例子中,定义一个表storeID,其中的字段ID 作为自动增加项目: --声明使用哪个数据库 USE VC --删除已有的storeID表 IF EXISTS(SELECT TABLE_NAME from INFORMATION_SCHEMA .TABLES  W

ORACLE里的Sequence 可以实现自动增加的功能,在sqlSERVER 中通过定义项目的属性 IDENTITY 来实现

在下面的例子中,定义一个表storeID,其中的字段ID 作为自动增加项目:

--声明使用哪个数据库
USE VC

--删除已有的storeID表
IF EXISTS(SELECT table_name from informatION_SCHEMA .tableS
 WHERE table_name ='storeID')
 DROP table storeID
 
GO

--创建表
CREATE table storeID
(
 --ID列为自增列(第一个参数是起始值,第二个参数是每次增加值)
 ID int IDentity(8000,1),
 
 --name列内容任意,只是为了能够通过插入name列,来实现ID列自动增加
 name varchar(1)
)

---测试
insert into VC.dbo.storeID(name)
values('a')

insert into VC.dbo.storeID(name)
values('b')

---结果:查看表storeID,结果有一条数据,其ID列值自动增加,MAX值为8001
SELECT MAX(ID)
  FROM storeID

 

IDENTITY(属性) 在表中创建一个标识列。该属性与   CREATE   table   及   ALTER   table   Transact-sql   语句一起使用。 说明     IDENTITY   属性与   sql-DMO   IDentity   属性不同,后者表现列的行标识属性。   语法 IDENTITY   [   (   seed  ,  increment   )   ] 参数 seed 装载到表中的第一个行所使用的值。 increment 增量值,该值被添加到前一个已装载的行的标识值上。 必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值   (1,1)。 注释 如果在经常进行删除 *** 作的表中存在着标识列,那么在标识值之间可能会产生差距。如果这构成了问题,那么请不要使用   IDENTITY   属性。但是,为了确保未产生差距,或者为了弥补现有的差距,在用   SET   IDENTITY_INSERT   ON   显式地输入标识值之前,请先对现有的标识值进行计算。 如果重新使用已删除的标识值,那么请使用示例   B   中的示例代码进行检查,以获得下一个可用的标识值。请用您的表名、标识列数据类型以及(该数据类型的)最大可允许值的数值   –1   替换   tablename、column_type   和   max(column_type)   –   1。 使用   DBCC   CHECKIDENT   检查当前的标识值,并将其与标识列中的最大值进行比较。   当将   IDENTITY   属性与   CREATE   table   一起使用时,Microsoft   sql   Server;   使用   CREATE   table   的   NOT   FOR   REPliCATION   选项替代标识列的自动增加。通常,sql   Server   给插入表中的每个新行指派一个值,该值比前面的最高值要大出某些增量。但是,如果新行是由另一个数据源复制过来的,那么标识值必须保持与其在数据源中完全相同。

总结

以上是内存溢出为你收集整理的SQLSERVER 里实现ORACLE里的Sequence 的功能(亲自实践)全部内容,希望文章能够帮你解决SQLSERVER 里实现ORACLE里的Sequence 的功能(亲自实践)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1178112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存