Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Banco de dados e SQL » SQL Server: Geração de seqüenciais de forma automática -->
 
Avaliação: | Publicado em: 20/09/2007
SQL Server: Geração de seqüenciais de forma automática


A propriedade Identity

No SQL Server, a geração automática de seqüenciais é feita através da propriedade Identity. O Identity não é um tipo de dados mas sim uma propriedade. Para gerar números automaticamente é preciso que uma determinada coluna seja de um tipo numérico e tenha a propriedade Identity ativada para essa coluna. Se o tipo de dados da coluna for NUMERIC ou DECIMAL, não são permitidas casas decimais. O exemplo abaixo demonstra a criação de uma tabela com Identity:

-- Criação de uma tabela Identity
CREATE TABLE tblClientes (
    ClienteID INT IDENTITY,
    ClienteNome VARCHAR(50))

-- Inserção de registros
INSERT INTO tblClientes (ClienteNome) VALUES ('Beatriz')
INSERT INTO tblClientes (ClienteNome) VALUES ('Neuza')
INSERT INTO tblClientes (ClienteNome) VALUES ('Nilma')

INSERT INTO tblClientes VALUES ('Noemy')

-- Verificação do Identity
SELECT
    ClienteID, ClienteNome
FROM
    tblClientes

Nesse exemplo, o campo ClienteID é um número que tem seu valor preenchido automaticamente. Nos três primeiros INSERTs, foi especificado explicitamente o campo ClienteNome. No quarto INSERT, teoricamente deveria ser gerado um erro, já que como os campos não foram especificados, pela ordem, o campo ClienteID deveria ser utilizado. No entanto, o fato da primeira coluna ser Identity, impede que o erro seja gerado.

Embora o mais provável seja a atribuição de seqüenciais com início no número 1 e incremento de 1 em 1 (ex: 1, 2, 3, 4, 5, etc), é possível especificar um início (Seed) e um incremento (Increment) para uma coluna Identity. O próximo exemplo mostra uma tabela com Identity iniciando em 0 e aumentando 10 unidades a cada registro.

-- Criação de uma tabela Identity
CREATE TABLE tblClientes (
    ClienteID INT IDENTITY (0,10),
    ClienteNome VARCHAR(50))

-- Inserção de registros
INSERT INTO tblClientes (ClienteNome) VALUES ('Flávia')
INSERT INTO tblClientes (ClienteNome) VALUES ('Geovanna')
INSERT INTO tblClientes (ClienteNome) VALUES ('Carol')

-- Verificação do Identity
SELECT
    ClienteID, ClienteNome
FROM
    tblClientes

Páginas: « Anterior 1 2 3 4 5 6 7 8 9 Próximo »  Próximo: Funções »