Сообщение об ошибке при попытке изменить минимальное значение последовательности


soobshhenie-ob-oshibke-pri-popytke-izmenit_1.png

Конечно, обычно полученное значение применяется в инструкции INSERT, но его можно использовать и для других целей. Вернемся к команде CREATE SEQUENCE: уже отмечалось, что эта команда создает последовательность в базе данных, с которой существует соединение. Нельзя использовать имя, состоящее из трех частей, включая имя базы данных; необходимо проверить подключение к базе данных, в которой будет создана последовательность.

Если вы хотите сначала проверить, существует ли такая последовательность в базе данных, и, например, удалить ее, прежде чем создавать новую, можно воспользоваться функцией OBJECTID и найти свойство со значением, отличным от NULL. Ниже приведен пример, в котором сначала устанавливается контекст базы данных (в данном случае AdventureWorks2008 R2), удаляется объект последовательности, если он уже существует, и создается новый:

  • USE AdventureWorks2008 R2;
  • IF OBJECTJD (‘dbo.Seql’SO’)
  • IS NOT NULL DROP SEQUENCE dbo.Seql;

CREATE SEQUENCE dbo.Seql AS INT START WITH 1 INCREMENT BY 1; Обратите внимание, что указан тип INT; в противном случае SQL Server использовал бы BIGINT по умолчанию. Кроме того, указано начальное значение 1; в ином случае SQL Server использовал бы по умолчанию самое малое значение данного типа (например, -2147483648 для INT). Значение приращения по умолчанию— 1, и часто оно оказывается верным; и все же более естественно указать значение явно, особенно если вы уже задали начальное значение. Поэтому я указываю приращение в «типовом» определении.

Как мы видим, можно определить минимальное и максимальное значения в случае, если они должны отличаться от стандартных для данного типа. Кроме того, можно указать, должна ли последовательность автоматически возвращаться к началу после достижения граничного значения или выдавать исключение (что происходит по умолчанию). CACHE — более глубокий параметр, влияющий на производительность; речь о нем пойдет ниже.

Комментарии