Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Modifica os argumentos de um objeto de sequência existente. Se a sequência foi criada com a CACHE opção, alterar a sequência recria o cache.
Os objetos Sequences são criados usando a instrução CREATE SEQUENCE. As sequências são valores inteiros e podem ser de qualquer tipo de dados que retorne um inteiro. O tipo de dados não pode ser alterado usando a ALTER SEQUENCE instrução. Para alterar o tipo de dados, solte e crie o objeto de sequência.
Uma sequência é um objeto vinculado ao esquema definido pelo usuário que gera uma sequência de valores numéricos de acordo com uma especificação. Novos valores são gerados a partir de uma sequência chamando a NEXT VALUE FOR função. Use sp_sequence_get_range para obter vários números de sequência de uma só vez. Para obter informações e cenários que usam o CREATE SEQUENCE, sp_sequence_get_rangee a função, consulte NEXT VALUE FOR sequência.
Transact-SQL convenções de sintaxe
Sintaxe
ALTER SEQUENCE [ schema_name. ] sequence_name
[ RESTART [ WITH <constant> ] ]
[ INCREMENT BY <constant> ]
[ { MINVALUE <constant> } | { NO MINVALUE } ]
[ { MAXVALUE <constant> } | { NO MAXVALUE } ]
[ CYCLE | { NO CYCLE } ]
[ { CACHE [ <constant> ] } | { NO CACHE } ]
[ ; ]
Argumentos
sequence_name
Especifica o nome exclusivo pelo qual a sequência é conhecida no banco de dados. Type é sysname.
REINICIAR [ COM <> constante ]
O próximo valor retornado pelo objeto de sequência. Se fornecido, o RESTART WITH valor deve ser um inteiro menor ou igual ao máximo e maior ou igual ao valor mínimo do objeto de sequência. Se o WITH valor for omitido, a numeração sequencial será reiniciada com base nas opções originais CREATE SEQUENCE .
INCREMENTO POR <> constante
O valor que é usado para incrementar (ou diminuir, se negativo) o valor base do objeto de sequência para cada chamada para a NEXT VALUE FOR função. Se o incremento for um valor negativo, o objeto de sequência será descendente, caso contrário, será ascendente. O incremento não pode ser 0.
[ MINVALUE <constante> | SEM MINVALUE ]
Especifica os limites para o objeto de sequência. Se NO MINVALUE for especificado, o valor mínimo possível do tipo de dados de sequência será usado.
[ Constante< MAXVALUE >| SEM MAXVALUE ]
Especifica os limites para o objeto de sequência. Se NO MAXVALUE for especificado, o valor máximo possível do tipo de dados de sequência será usado.
[ CICLO | SEM CICLO ]
Esta propriedade especifica se o objeto de sequência deve reiniciar a partir do valor mínimo (ou máximo para objetos de sequência decrescente) ou lançar uma exceção quando seu valor mínimo ou máximo for excedido.
Observação
Depois de pedalar, o próximo valor é o valor mínimo ou máximo, não o START VALUE da sequência.
[ CACHE [ <constante> ] | SEM CACHE ]
Aumenta o desempenho para aplicativos que usam objetos de seqüência, minimizando o número de IOs necessários para persistir os valores gerados nas tabelas do sistema.
Para obter mais informações sobre o comportamento do cache, consulte CREATE SEQUENCE.
Comentários
Para obter informações sobre como as sequências são criadas e como o cache de sequência é gerenciado, consulte CREATE SEQUENCE.
As MINVALUE sequências para ascendentes e as MAXVALUE sequências para descendentes não podem ser alteradas para um valor que não permita o START WITH valor da sequência. Para alterar o MINVALUE de uma sequência ascendente para um número maior que o START WITH valor ou para alterar o MAXVALUE de uma sequência descendente para um número menor que o START WITH valor, inclua o RESTART WITH argumento para reiniciar a sequência em um ponto desejado que esteja dentro do intervalo mínimo e máximo.
Metadados
Para obter informações sobre sequências, consulte sys.sequences.
Permissões
Requer ALTER permissão na sequência ou ALTER permissão no esquema. Para conceder ALTER permissão na sequência, use ALTER ON OBJECT no seguinte formato:
GRANT ALTER
ON OBJECT::Test.TinySeq TO [AdventureWorks\Larry];
A propriedade de um objeto de sequência pode ser transferida usando a ALTER AUTHORIZATION instrução.
Auditoria
Para auditar ALTER SEQUENCE, monitore o SCHEMA_OBJECT_CHANGE_GROUP.
Exemplos
Para obter exemplos de criação de sequências e uso da NEXT VALUE FOR função para gerar números de sequência, consulte Números de sequência.
Um. Alterar uma sequência
O exemplo a seguir cria um esquema chamado Test e uma sequência chamada TestSeq usando o tipo de dados int, com um intervalo de 100 a 200. A sequência começa com 125 e aumenta em 25 cada vez que um número é gerado. Como a sequência é configurada para ciclo, quando o valor excede o valor máximo de 200, a sequência é reiniciada com o valor mínimo de 100.
CREATE SCHEMA Test;
GO
CREATE SEQUENCE Test.TestSeq
AS INT
START WITH 125
INCREMENT BY 25
MINVALUE 100
MAXVALUE 200
CYCLE
CACHE 3;
GO
O exemplo a seguir altera a sequência TestSeq para ter um intervalo de 50 a 200. A sequência reinicia a série de numeração com 100 e aumenta em 50 sempre que um número é gerado.
ALTER SEQUENCE Test.TestSeq
RESTART WITH 100
INCREMENT BY 50
MINVALUE 50
MAXVALUE 200
NO CYCLE
NO CACHE;
GO
Como a sequência não faz ciclo, a NEXT VALUE FOR função resulta em um erro quando a sequência excede 200.
B. Reiniciar uma sequência
O exemplo a seguir cria uma sequência chamada CountBy1. A sequência usa os valores padrão.
CREATE SEQUENCE Test.CountBy1;
Para gerar um valor de sequência, o proprietário executa a seguinte instrução:
SELECT NEXT VALUE FOR Test.CountBy1;
O valor retornado de -9.223.372.036.854.775.808 é o menor valor possível para o tipo de dados bigint. O proprietário percebe que queria que a sequência começasse com 1, mas não indicou a START WITH cláusula quando criou a sequência. Para corrigir esse erro, o proprietário executa a seguinte instrução.
ALTER SEQUENCE Test.CountBy1
RESTART WITH 1;
Em seguida, o proprietário executa a seguinte instrução novamente para gerar um número de sequência.
SELECT NEXT VALUE FOR Test.CountBy1;
O número agora é 1, como esperado.
A CountBy1 sequência foi criada usando o valor padrão de para que ele pare de operar depois de NO CYCLE gerar o número 9,223,372,036,854,775,807. Chamadas subsequentes para o objeto de sequência retorna o erro 11728. A instrução a seguir altera o objeto de sequência para ciclo e define um cache de 20.
ALTER SEQUENCE Test.CountBy1
CYCLE
CACHE 20;
Agora, quando o objeto de sequência atingir 9.223.372.036.854.775.807, ele circulará, e o próximo número após o ciclo será o mínimo do tipo de dados, -9.223.372.036.854.775.808.
O proprietário percebeu que o tipo de dados bigint usa 8 bytes cada vez que é usado. O tipo de dados int que usa 4 bytes é suficiente. No entanto, o tipo de dados de um objeto de sequência não pode ser alterado. Para alterar para um tipo de dados int, o proprietário deve soltar o objeto de sequência e recriar o objeto com o tipo de dados correto.