Это мой сценарий:
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