elton07

Membros
  • Content Count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutro

About elton07

  1. Boa noite! Estou com uma situação, tenho uma tabela chamada alm_entrada_produto_item a qual é inserida pela procedure [prc_ALM_InsertEntradaProdutoItem] ALTER PROCEDURE [prc_ALM_InsertEntradaProdutoItem] @p_id_entidade int, @p_id_entrada_produto_item int, @p_id_entrada_produto_itemSaida int OUTPUT, @p_id_produto int, @p_qtde_produto int, @p_valor_unitario decimal(10, 2), @p_data_validade datetime, @p_numero_lote nvarchar(45), @p_id_entrada_produto int, @p_id_almoxarifado int, @p_observacao_entrada varchar(3000), @p_tipo_entrada varchar(45), @p_id_transferencia int, @p_id_estorno int AS BEGIN TRANSACTION BEGIN try DECLARE @contador int SELECT @contador = count_big(*) FROM dbo.alm_entrada_produto_item WHERE ([email protected]_id_entidade) and alm_entrada_produto_item.id_entrada_produto_item = @p_id_entrada_produto_item IF @contador > 0 UPDATE dbo.alm_entrada_produto_item SET id_produto = @p_id_produto, qtde_produto = @p_qtde_produto, valor_unitario = @p_valor_unitario, data_validade = @p_data_validade, numero_lote = @p_numero_lote, id_almoxarifado = @p_id_almoxarifado, observacao_entrada = @p_observacao_entrada, tipo_entrada = @p_tipo_entrada WHERE ([email protected]_id_entidade) and alm_entrada_produto_item.id_entrada_produto_item = @p_id_entrada_produto_item ELSE BEGIN INSERT dbo.alm_entrada_produto_item( id_entidade, id_produto, qtde_produto, valor_unitario, data_validade, numero_lote, id_entrada_produto, id_almoxarifado, observacao_entrada, tipo_entrada, id_transferencia, id_estorno) VALUES ( @p_id_entidade, @p_id_produto, @p_qtde_produto, @p_valor_unitario, @p_data_validade, @p_numero_lote, @p_id_entrada_produto, @p_id_almoxarifado, @p_observacao_entrada, @p_tipo_entrada, @p_id_transferencia, @p_id_estorno) END COMMIT TRANSACTION -- Efetivando alterações na base SET @p_id_entrada_produto_itemSaida=SCOPE_IDENTITY() return @p_id_entrada_produto_itemSaida END try BEGIN CATCH PRINT ERROR_MESSAGE() ROLLBACK TRANSACTION -- Desfazendo as alterações na base END CATCH ---------------------------------- e a Tabela alm_entrada_produto_item contém um trigger que atualiza o saldo do estoque na tabela alter TRIGGER [tr_ObterIDAlmAtualizarSaldoEstoque] ON [dbo].[alm_entrada_produto_item] AFTER INSERT AS DECLARE @p_id_entidade int SELECT @p_id_entidade = (select top 1 id_entidade FROM inserted) IF (@p_id_entidade is null) begin RAISERROR ('Informe a entidade antes de prosseguir', 11,1); Rollback; end ELSE begin EXECUTE prc_ALM_AtualizarEstoque SELECT id_entidade, id_entrada_produto, id_produto, qtde_produto, id_almoxarifado, valor_unitario, data_validade, numero_lote FROM INSERTED END que por sua vez chama a procedure prc_ALM_AtualizarEstoque para atualizar o saldo ALTER PROCEDURE prc_ALM_AtualizarEstoque @p_id_entidade int, @p_id_entrada_produto int, @p_id_produto int, @p_qtde_produto int, @p_id_almoxarifado int, @p_valor_unitario decimal(10, 2), @p_data_validade datetime, @p_numero_lote nvarchar(45) AS BEGIN DECLARE @contador int SELECT @contador = count_big(*) FROM alm_estoque WHERE ([email protected]_id_entidade) AND id_produto = @p_id_produto AND id_almoxarifado = @p_id_almoxarifado AND numero_lote = @p_numero_lote AND data_validade = @p_data_validade AND id_entrada_produto = @p_id_entrada_produto IF @contador > 0 begin UPDATE alm_estoque SET qtde_produto = qtde_produto + @p_qtde_produto, id_almoxarifado = @p_id_almoxarifado WHERE ([email protected]_id_entidade) AND id_produto = @p_id_produto AND id_almoxarifado = @p_id_almoxarifado AND numero_lote = @p_numero_lote AND data_validade = @p_data_validade AND id_entrada_produto = @p_id_entrada_produto end ELSE begin INSERT dbo.alm_estoque( id_entidade, id_entrada_produto, id_produto, qtde_produto, id_almoxarifado, valor_unitario, data_validade, numero_lote) VALUES ( @p_id_entidade, @p_id_entrada_produto, @p_id_produto, @p_qtde_produto, @p_id_almoxarifado, @p_valor_unitario, @p_data_validade, @p_numero_lote) end END Porém quando tento incluir na tabela alm_entrada_produto_item me aparece essa mensagem A tabela de destino 'alm_entrada_produto_item' da instrução DML não pode ter gatilhos habilitados se a instrução contém uma cláusula OUTPUT sem cláusula INTO. Já tentei de todas as formas, se alguém puder me ajudar, agradeço.