我需要使用从游标返回的值在表中插入数据。我实际上是将值捕获到标量变量中,现在我需要使用变量中的值将数据插入到另一个表中。由于变量带有两个值,我不确定如何逐个使用这些值插入数据。
以下图片显示了值
@tran_id变量带有上面突出显示的值,我需要使用这些值将数据插入另一个表中。所以在where子句中,它就像id = 24163然后24164但是如何逐个获取它们让我感到压力。
SP
-- Inserting into main table
INSERT INTO ESG.DOCUMENT_SET_TRANSACTION
VALUES (2, 1001, 'axaa1aaa-aaaa-a5aa-aaaa-aa8aaaa9aaaa', NULL, NULL, NULL, 1, getDate(), 0, NULL, 0, NULL, 'SYSTEM', getDate(), NULL, getDate());
INSERT INTO ESG.DOCUMENT_SET_TRANSACTION
VALUES (2, 1001, 'bxbb1bbb-bbbb-b5bb-bbb4-bb8bbbb9bbbf', NULL, NULL, NULL, 1, getDate(), 0, NULL, 0, NULL, 'SYSTEM', getDate(), NULL, getDate());
DECLARE @tran_id INT;
DECLARE @identifier VARCHAR(100);
DECLARE tran_cursor CURSOR FOR
SELECT DOCUMENT_SET_TRANSACTION_ID, IDENTIFIER FROM ESG.DOCUMENT_SET_TRANSACTION
WHERE IDENTIFIER IN('axaa1aaa-aaaa-a5aa-aaaa-aa8aaaa9aaaa','bxbb1bbb-bbbb-b5bb-bbb4-bb8bbbb9bbbf' );
OPEN tran_cursor;
FETCH NEXT FROM tran_cursor INTO @tran_id, @identifier;
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT 'Tran_ID = ' + CAST(@tran_id AS VARCHAR(100)) + ' Identifier = ' + @identifier
FETCH NEXT FROM tran_cursor INTO @tran_id, @identifier;
END
CLOSE tran_cursor;
DEALLOCATE tran_cursor;
插入声明
INSERT INTO esg.DOCUMENT_SET_TRANS_MDATA (DOCUMENT_SET_TRANSACTION_ID, MDATA_ATTRB, MDATA_VALUE, CREATED_TIME, LAST_MOD_TIME, ISACTIVE)
VALUES (@tran_id, 'SOURCE', 'M1', getDate(), getDate(), 1);
这是为上面突出显示的两个ID插入相同的数据集。在这里,我需要进行区分,以便为两个ID插入不同的数据集。