Я не могу передать недавно созданные несколько идентификаторов в следующую таблицу. Мой сценарий - PullRequest
0 голосов
/ 04 ноября 2019

Это мой сценарий:

DECLARE @id VARCHAR(MAX)
SET @id = '1344,1345'

DECLARE @Sid TABLE (Sid VARCHAR(MAX))

INSERT INTO person
OUTPUT inserted.personid INTO @sid 
    SELECT value id, 200, abc
    FROM [dbo].[fn_Split](@id, ',')

SELECT * FROM @sid 

INSERT INTO relatedperson
    SELECT value sid, 15527, '2019-11-04 02:20:00.000'
    FROM [dbo].[fn_Split](@Sid, ',')

Я хочу передать 2 сгенерированных идентификатора человека для вставки в следующую таблицу, которая связана с сгенерированным 2 строками, в каждой из которых 1 идентификатор человека.

Вот [fn_Split]

ALTER  FUNCTION [dbo].[fn_Split]
    (@id VARCHAR(MAX), @delimiter VARCHAR(20) = ' ')  
RETURNS @Strings TABLE  
                 (     
                     position INT IDENTITY PRIMARY KEY,  
                     value VARCHAR(8000)    
                 )  
AS  
BEGIN  
    DECLARE @xml XML
    SET @XML = CONVERT(XML, '<i>' + REPLACE(@id, @delimiter, '</i><i>') + '</i>')

    INSERT INTO @Strings (value)
        SELECT row.value('.','VARCHAR(100)') as parsedValue 
        FROM @xml.nodes('/i') AS Records(row)

    RETURN
END  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...