如何使用SQL Server中的标量变量的值插入数据?

时间:2017-11-10 16:03:03

标签: sql sql-server database stored-procedures

我需要使用从游标返回的值在表中插入数据。我实际上是将值捕获到标量变量中,现在我需要使用变量中的值将数据插入到另一个表中。由于变量带有两个值,我不确定如何逐个使用这些值插入数据。

以下图片显示了值

enter image description here

@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插入不同的数据集。

0 个答案:

没有答案