trigger no SQL Server
Pessoal,
postei esse tópico no forum do Delphi, sem me tocar q existe um forum pro SQL Server, desculpem;
tô trabalhando com um projeto em Delphi e SQL Server e tô com um probleminha:
tenho uma tabela de pedidos, onde tenho por exemplo os campos: IDMOVIMENTO, IDCLIENTE, VALOR;
e tenho um caixa onde irei fazer o pagamento desse pedido de acordo com a forma de pagamento: CHEQUE , CARTÃO , DINHEIRO;
no caso de CHEQUE os dados do(s) cheque(s) serão armazenados e naturalmente o IDMOVIMENTO associado, então eu gostaria q quando da entrada dos cheques na tabela de CHEQUE uma trigger pegasse o IDMOVIMENTO da tabela PEDIDOS e inserisse automaticamente no campo IDMOVIMENTO da tabela CHEQUE.
eu tentei fazer assim:
CREATE TRIGGER [AtualizaChequeINSERT] ON dbo.Cheque
FOR INSERT
AS
Declare @IdMov int
Select @IdMov = Pedidos.IdMovimento From Pedidos
INSERT INTO Cheque(IdMovimento) VALUES(@IdMov)
só q não tá dando certo toda vez ele dá a mensagem de q o campo IDMOVIMENTO não pode ser null.
essa trigger não deveria ser disparada sempre q eu desse um poste na tb de CHEQUES, inserindo assim o IDMOVIMENTO da tb de PEDIDOS no campo IDMOVIMENTO da tb CHEQUE?
OBRIGADO.
postei esse tópico no forum do Delphi, sem me tocar q existe um forum pro SQL Server, desculpem;
tô trabalhando com um projeto em Delphi e SQL Server e tô com um probleminha:
tenho uma tabela de pedidos, onde tenho por exemplo os campos: IDMOVIMENTO, IDCLIENTE, VALOR;
e tenho um caixa onde irei fazer o pagamento desse pedido de acordo com a forma de pagamento: CHEQUE , CARTÃO , DINHEIRO;
no caso de CHEQUE os dados do(s) cheque(s) serão armazenados e naturalmente o IDMOVIMENTO associado, então eu gostaria q quando da entrada dos cheques na tabela de CHEQUE uma trigger pegasse o IDMOVIMENTO da tabela PEDIDOS e inserisse automaticamente no campo IDMOVIMENTO da tabela CHEQUE.
eu tentei fazer assim:
CREATE TRIGGER [AtualizaChequeINSERT] ON dbo.Cheque
FOR INSERT
AS
Declare @IdMov int
Select @IdMov = Pedidos.IdMovimento From Pedidos
INSERT INTO Cheque(IdMovimento) VALUES(@IdMov)
só q não tá dando certo toda vez ele dá a mensagem de q o campo IDMOVIMENTO não pode ser null.
essa trigger não deveria ser disparada sempre q eu desse um poste na tb de CHEQUES, inserindo assim o IDMOVIMENTO da tb de PEDIDOS no campo IDMOVIMENTO da tb CHEQUE?
OBRIGADO.
Oquendo
Curtidas 0
Respostas
Marcus.magalhaes
16/06/2005
Boa tarde.
Olha só, algumas considerações:
vc a trigger só é disparada depois que vc fez o insert, sendo assim se a sua coluna está definida como NOT NULL o teste de validação de integridade será sempre realizado antes.
Portanto, ou defina sua coluna como NULL ou defina um valor default para ela (eu prefiro esta saida)
Espero ter ajudado.
Att,
Olha só, algumas considerações:
vc a trigger só é disparada depois que vc fez o insert, sendo assim se a sua coluna está definida como NOT NULL o teste de validação de integridade será sempre realizado antes.
Portanto, ou defina sua coluna como NULL ou defina um valor default para ela (eu prefiro esta saida)
Espero ter ajudado.
Att,
GOSTEI 0