Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte:
A primary key do meu banco é gerada automaticamente, porém é um valor padrão (ex: 20130001). Esse valor precisa aparecer ao usuário na view.
O problema é que, para conseguir inserir meus dados, tive que forçar o valor a ser 0. E então, dentro da minha stored procedure, eu criei uma função para gerar esse código.
Minha função:
CREATE FUNCTION [dbo].[geraCodigoFicha]()
returns int
AS
BEGIN
DECLARE @ano int;
DECLARE @atual int;
DECLARE @novo int;
SELECT @ano = DATEPART ( YEAR , GETDATE());
SELECT @atual = MAX(id_ficha) FROM ficha_informacao WHERE id_ficha >= (@ano*10000)+1;
if @atual is null
set @novo = (@ano*10000)+1
else
set @novo = @atual + 1
return(@novo);
END;
Como posso atualizar assincronamente esse código?
O problema é que eu precisarei reiniciar essa campo anualmente... Ficando 20140001++, etc.
Como você vai ter este tipo de defasagem somente na virada do ano, eu colocaria para alterar o valor de identity no dia 31/12
como um alter, entendeu?
Boa ideia! Vou testar, e dou o feedback. Obrigada!
Não seria mais facil colocar este campo no um identity a partir de 20130000?