TRIGGERS SQL SERVER2005

ROBSON220BASS 27/07/2011 15:36:11
#380128
tenho uma tabela (tabela1) onde o usuario grava o valor de x, y
porem quero criar uma trigger para nao deixa o usuario gravar o valor de x (menor que) 50
e y (menor que ) 50

PARREIRA 27/07/2011 16:08:01
#380134
Resposta escolhida
Não é mais facil criar uma constraint no campo que deseja.
Tipo um check que não permita valores estipulados por você:

Exemplo.
ALTER TABLE SUA_TABELA
ADD CONSTRAINT CK_CHECA_CAMPO_Y CHECK(Y< 50)

ALTER TABLE SUA_TABELA
ADD CONSTRAINT CK_CHECA_CAMPO_X CHECK(X< 50)

Melhor do que trigger.
ROBSON220BASS 27/07/2011 16:45:23
#380136
PARREIRA, obrigado pela dica..

porem se o valor inserido pelo usuario for igual ou maior que 50, automaticamente será gravado um valor padrao (10)
tem como fazer isso.
PARREIRA 27/07/2011 17:16:42
#380139
Tem sim, fiz um exeplo para você.

Verifica com funciona e troca os campos pelos os seus.

CREATE TABLE HIST_EMPREGADOS
(
CODIGOFUN INT,
SALARIO_NOVO TINYINT,

SALARIO_ANTIGO NUMERIC(10,2),
DATA_ALTERACAO DATE DEFAULT GETDATE(),
USUARIO CHAR(15)
)

CREATE TRIGGER MAIOR_50
ON HIST_EMPREGADOS
FOR INSERT
NOT FOR REPLICATION
AS
DECLARE @NUMERO AS TINYINT = (SELECT SALARIO_NOVO FROM INSERTED)
BEGIN
IF (@NUMERO > 49)
BEGIN
UPDATE A SET
A.SALARIO_NOVO = 10
FROM HIST_EMPREGADOS AS A ,INSERTED AS B
WHERE A.CODIGOFUN = B.CODIGOFUN
END
END
ROBSON220BASS 27/07/2011 18:18:36
#380144
obrigado!

Parreira, agora deu certo!
Tópico encerrado , respostas não são mais permitidas