Descubra as vantagens de utilizar uma coluna identity ou autonumerada do SQL Server. Para quem trabalha com o PostgreSQL ou o Oracle, é o mesmo conceito da Sequence, embora a sequence seja um objeto a parte que é vinculado à tabela.
Você montou uma stored procedure que efetua o insert na tabela e gostaria de obter o número do Identity. Como fazer isso?
Vejamos no código o exemplo:
A tabela LOJ_MUNICIPIO possui 3 colunas:
MUN_IN_CODIGO Integer Identity: É o código do munícipio
MUN_ST_NOME NVARCHAR(50) É a descrição do municipio.
EST_CH_SIGLA NCHAR(2) É a sigla do Estado. É uma FK.
/* Projeto: Exemplo de Procedure que retorna o valor do IDENTITY A função SCOPE_IDENTITY retorna o último valor identity no escopo da execução atual. Caso você utilize @@IDENTITY, sugiro substituí-la, já que nas tabelas que possuem triggers ela pode não retornar o valor correto. Autor: Prof. Ricardo Leme Data: 26/06/2009 */ CREATE PROCEDURE dbo.SP_I_LOJ_MUNICIPIO @pNome nvarchar(50), @pSigla nchar(2), @pCodigo int =0 OUT AS SET NOCOUNT ON INSERT INTO LOJ_MUNICIPIO (MUN_ST_NOME, EST_CH_SIGLA) VALUES(@pNome, @pSigla) SET @pCodigo = SCOPE_IDENTITY() --A linha do print pode ser removida. --Apenas está aqui para você visualizar o valor PRINT @pCodigo RETURN