T-SQL SEQUENCE заканчивается, без цикла, что происходит? - PullRequest
0 голосов
/ 29 марта 2019

В моем конкретном случае я пишу модульный тест и хочу смоделировать ошибку для генератора последовательности, но я не могу найти никакой документации о том, что он делает, когда он заканчивается.

Вот, конечно, документация для ПОСЛЕДОВАТЕЛЬНОСТИ:

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

Это, очень приятно, говорит обо всем, кроме: что произойдет, если я закончу.

Рассмотрим случай, когда я установил последовательность в очень маленькое значение (1-10), и я «знаю», что она никогда не превысит 10. За исключением того, что в коде есть ошибка, и она неожиданно получает каждую последнюю. .. тогда просит еще один?

Гипотетический пример:

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

Внешний код запрашивает 11-й.

 SELECT NEXT VALUE FOR MY_SEQUENCE

Что происходит?

1 Ответ

0 голосов
/ 02 апреля 2019

В документации, которую вы упомянули, указано, что происходит: «[...] выдает исключение при превышении его минимального или максимального значения»

Относительно сообщения об ошибке вы можете узнать с помощью простого поиска Google: https://www.google.com/search?q=t-sql+error+messages+sequence Четвертая ссылка - https://www.sqlshack.com/sequence-objects-in-sql-server/, и там вы можете найти скриншот ошибки, который имеет номер 11728.

Конечно, было бы проще попробовать это самостоятельно, используя один из методов, уже указанных в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...