TRIGGERS SQL SERVER2005
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
porem quero criar uma trigger para nao deixa o usuario gravar o valor de x (menor que) 50
e y (menor que ) 50
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.
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.
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.
porem se o valor inserido pelo usuario for igual ou maior que 50, automaticamente será gravado um valor padrao (10)
tem como fazer isso.
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
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
obrigado!
Parreira, agora deu certo!
Parreira, agora deu certo!
Tópico encerrado , respostas não são mais permitidas