Trigger de incremento no código do cliente!!

09/09/2009

0

Olá amigos do fórum. Sou inciante neste maravilhoso banco de dados, tendo, a princípio, mais conhecimento dem firebird. Estou desenvolvendo uma aplicação a pedido de um cliente usando o banco de dados SQL SERVER EXPRESS EDITION 2005 com MANAGEMENT STUDIO, e não sei como gerar um incremento para a chave primária CODCLI int not null.
No firebird, uso a trigger assim:

set term^;
create trigger seqcli for tb_cli
active before insert position 0
as
declare variable seq integer;
begin
select max(codcli) from tb_cli into seq;
if (seq is null) then seq = 0;
seq = seq+1;
new.codcli = seq
end^
set term;^

gostaria de saber como faço isso no Sql Server. De preferência, usando o mesmo princípio da trigger acima do firebird, sem usar StoredProcedure ou Recursos atribuidos ao proprio banco com Campo autoincremento.

Grato a todos,

obrigado pela ajuda atencipadamente!!


Maxymus

Maxymus

Responder

Posts

10/09/2009

Brainrj

eu sempre uso o autoincremento...
mas como vc quer fazer sem... uma solução seria

declare @cod int;
set @cod = (select case when max(cod) is null then 0 else max(cod)+1 end from teste);
insert into teste(cod,nome)values(@cod,´eric´);


não tenho muita pratica em sql server talvez tenha uma forma mais facil de fazer isso


Responder

10/09/2009

Renato Tavares

Olá, Boa Tarde..!! 8)

No SQL Server, você deve utilizar a função IDENTITY, veja: :wink:

DROP TABLE #TESTE

CREATE TABLE TESTE (CODIGO NUMERIC(3) IDENTITY (1,1) CONSTRAINT PK_AG PRIMARY KEY,
NOME VARCHAR(20))

INSERT INTO TESTE VALUES (´RENATO´)
INSERT INTO TESTE VALUES (´RENAN´)
INSERT INTO TESTE VALUES (´JORGE´)

SELECT *FROM TESTE


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar