T-SQL SEQUENCE用完了,没有周期,会发生什么?

时间:2019-03-29 18:37:20

标签: sql-server tsql

我的特殊情况是我正在编写一个单元测试,并且我想模拟一个序列生成器的错误,但是我找不到任何有关它用尽时的功能的文档。

这里是SEQUENCE的文档:

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-sequence-transact-sql?view=sql-server-2017

很好,说了一切,除了:如果我用完了会发生什么。

请考虑以下情况:将序列设置为非常小的值(1-10),并且我“知道”序列永远不会超过10。除非代码中有错误,否则突然得到最后一个错误。 ..然后再要求一个?

假设的例子:

tableInstance

外部代码要求输入第11个。

CREATE SEQUENCE [dbo].[MY_SEQUENCE] 
 AS [tinyint]
 START WITH 1
 INCREMENT BY 1
 MINVALUE 1
 MAXVALUE 10
 NO CYCLE
 CACHE

会发生什么?

1 个答案:

答案 0 :(得分:0)

您提到的文档指定了发生的情况:“ [...]超出其最小值或最大值时引发异常”

关于错误消息,您可以使用简单的Google搜索来查找:https://www.google.com/search?q=t-sql+error+messages+sequence第四个链接是https://www.sqlshack.com/sequence-objects-in-sql-server/,在那里您可以找到错误的屏幕快照,编号为11728。

当然,使用注释中已经指定的方法之一,自己尝试会更容易。