DECLARE @question table( alid uniqueidentifier, QuestionId int, crdate datetime, IsActive bit ) DECLARE @Choice table( imid int, alid uniqueidentifier, Choiceid int )
alid QuestionId crdate IsActive BB83F8E9 1 null null 9EB1E08563 2 null null SB83F8ERE 3 null null imid alid Choiceid 1 BB83F8E9 2 2 9EB1E08563 3 3 SB83F8ERE 5
DECLARE @questionIdandchoiceid varchar(8000)='1-2,2-3,3-5' ;DECLARE @Qout table(alid uniqueidentifier, QuestionID int);DECLARE @question table( alid uniqueidentifier default newid(), QuestionID int, crdate datetime null, IsActive bit null); DECLARE @Choice table( imid int identity(1,1), alid uniqueidentifier, ChoiceID int );with basedata as (select max(case ds2.ItemNumber when 1 then cast(ds2.Item as int) else null end) as QuestionID, max(case ds2.ItemNumber when 2 then cast(ds2.Item as int) else null end) as ChoiceIDfrom dbo.DelimitedSplit8K(@questionIdandchoiceid,',') ds1 cross apply dbo.DelimitedSplit8K(ds1.Item,'-') ds2group by ds1.ItemNumber, ds1.Item)insert into @Question(QuestionID)output inserted.alid, inserted.QuestionIDinto @Qoutselect bd.QuestionIDfrom basedata bd;with basedata as (select max(case ds2.ItemNumber when 1 then ds2.Item else null end) as QuestionID, max(case ds2.ItemNumber when 2 then ds2.Item else null end) as ChoiceIDfrom dbo.DelimitedSplit8K(@questionIdandchoiceid,',') ds1 cross apply dbo.DelimitedSplit8K(ds1.Item,'-') ds2group by ds1.ItemNumber, ds1.Item)insert into @Choice(alid, ChoiceID)select q.alid, bd.ChoiceIDfrom basedata bd inner join @Qout q on q.QuestionID = bd.QuestionID;select * from @Question;select *from @Choice;
DECLARE @questionIdandchoiceid varchar(8000)='1-2,2-3,3-5'DECLARE @question table( alid uniqueidentifier, QuestionId int, crdate datetime, IsActive bit)DECLARE @Choice table( imid int, alid uniqueidentifier, Choiceid int ) SELECT LEFT(val, CHARINDEX('-', val)-1) AS Ques , STUFF(val, 1, CHARINDEX('-', val), '') AS ChoiceINTO #tempFROM dbo.split(@questionIdandchoiceid, ',') INSERT INTO @question(alid, QuestionId)SELECT NEWID(), Ques FROM #tempINSERT INTO @ChoiceSELECT QuestionId, alid, t.ChoiceFROM @question qinner join #temp t on q.QuestionId = t.Ques SELECT * FROM @questionSELECT * FROM @ChoiceDROP TABLE #temp