trigger no SQL Server

16/06/2005

0

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.


Oquendo

Oquendo

Responder

Posts

16/06/2005

Marcus.magalhaes

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,


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