Pessoal, bom dia.
Uso SQL Server 2008 R2. Criei um Trigger usando cursor para uma tabela no SAP. A tabela é a RDR1 (Itens do Pedido de Venda), onde cada vez que for cadastrado um novo pedido de Venda, essa Trigger irá selecionar os itens dos pedidos cadastrados e cadastrar
alguns dados em uma outra tabela.
Segue o código abaixo:
ALTER TRIGGER [dbo].[TRIGGER_PV]
ON [dbo].[RDR1]
AFTER INSERT
AS
DECLARE
@NUM_PV VARCHAR(10),
@DOC_ENTRY INT,
@NUMPV_ITEM INT,
@DATA_DOC DATE,
@DATA_ENTR DATE,
@ITEMCODE VARCHAR(10),
@ITEMNAME VARCHAR(100),
@QUANTIDADE INT
BEGIN
SELECT @DOC_ENTRY = DocEntry
FROM INSERTED;
DECLARE CursorPV CURSOR
FOR
SELECT T0.DocNum, T0.DocDate, T0.DocDueDate, T1.ItemCode, T1.Dscription, T1.Quantity
FROM ORDR T0
INNER JOIN RDR1 T1 ON(T0.DocEntry = T1.DocEntry)
WHERE T0.DocEntry = @DOC_ENTRY
OPEN CursorPV;
FETCH NEXT FROM CursorPV
INTO @NUM_PV, @DATA_DOC, @DATA_ENTR, @ITEMCODE, @ITEMNAME, @QUANTIDADE
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO [@EVLISTAMESTRA] (Code, Name, DocEntry, CreateDate, Object, U_U_LG_DataVenc, U_U_LG_ItemCode, U_U_LG_Qtde)
VALUES(@NUM_PV, @ITEMNAME, @DOC_ENTRY, @DATA_DOC, 'EV', @DATA_ENTR, @ITEMCODE, @QUANTIDADE);
FETCH NEXT FROM CursorPV
INTO @NUM_PV, @DATA_DOC, @DATA_ENTR, @ITEMCODE, @ITEMNAME, @QUANTIDADE
END
CLOSE CursorPV;
DEALLOCATE CursorPV;
END
GO
Já usei cursores em outras ocasioes exatamente nessa lógica e funcionou. Agora quando eu tento incluir um novo pedido de venda, é apresentado o erro: [Microsoft][SQL Server Native Client 10.0]Estado de cursor inválido '' (RDR1)
Andei pesquisando na internet e vi em alguns lugares que isso é um bug do SQL Server e tem correção pra isso.
Voces poderiam me ajudar pessoal? Muito obrigado.
[ ]'s