SQL Server 2012 “Denali” CTP 1 – Sequences

Se você já trabalhou com Oracle ou PostGreSql, já deve ter ouvido a respeito das Sequences… Bem, para quem não conhece, ela basicamente é um enumerador que inicia de um determinado valor e vai incrementa até chegar a um determinado limite.

Como assim, fizeram outra estrutura para fazer o que o IDENTITY já faz? Não é bem assim, as identities ainda permanecem, mas para situações mais complexas e customizadas, agora existem as sequences no SQL Server.

Abaixo um exemplo de uma sequence semelhante a um IDENTITY(1, 1):

Também é possível criá-la por SQL:

CREATE SEQUENCE [SEQ_Categorias]
START WITH 1
INCREMENT BY 1

E para recuperar um valor dela, basta utilizar o comando NEXT VALUE FOR:

DECLARE @Codigo INT
SET @Codigo = NEXT VALUE FOR [SEQ_Categorias]
SELECT @Codigo

Para reiniciá-la:

ALTER SEQUENCE [SEQ_Categorias]
RESTART

Para criar uma coluna que utiliza uma sequence, será necessário definir o NEXT VALUE FOR como valor DEFAULT da coluna:

CREATE TABLE [Categorias] (
    Codigo int DEFAULT NEXT VALUE FOR [SEQ_Categorias] NOT NULL,
    Descricao varchar(50) NOT NULL
)

Ou utilizar o processo manual:

INSERT INTO Categorias (Codigo, Descricao)
SELECT NEXT VALUE FOR [SEQ_Categorias], 'Frutas'

Uma das principais vantagens que identifiquei, é a utilização de sequences cíclicas (CYCLE), que a torna fixa a um determinado range de valores, exemplo, uma sequence que inicia de 1 incrementa até 10 e recomeça após chegar ao seu limite.

Abaixo um artigo que possui exemplos bons sobre sequences do SQL Server 2011 CTP 1 e onde descobri a façanha do NEXT VALUE FOR:
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/a-first-look-at-sequences-in-sql-server

Ainda esta semana, mais artigos sobre o SQL Server 2011!

9 pensamentos sobre “SQL Server 2012 “Denali” CTP 1 – Sequences

  1. Pergunta besta de iniciante, tenho o sql server 2008 r2 na maquina, posso instalar o CTP de boa?

    • Pode instalar o CTP 1 tranquilamente, pois estou com o CTP 1 instalado em um equipamente com o SQL Server 2008 R2 e não identifiquei nenhum problema na instalação e nem no uso do SQL Server 2008 R2.

      • Detalhe, hoje tive conflitos quanto tentei criar novos projetos do SQL Server Integration Services, sem solução ainda… E quando tentei utilizar SQL Server Configuration Manager antigo, mas ainda da para fazer tudo na versão nova.

  2. Pingback: SQL Server 11 “Denali” CTP1 – “SQL Server 2011”? « Thiago Zavaschi R2

  3. Pingback: SQL Server 11 – Codinome Denali « Fabrício Lima

  4. Pingback: SQL Server 2011 CTP 1 – Resumo « SQL From Hell.com

  5. Pingback: SQL Server 11 – Codinome Denali | Fabrício Lima

  6. Pingback: SQL Server Denali CTP 3 – Resumo « SQL From Hell.com

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s