我有一个要求,从int[]字符串中,我需要将这个数组的所有值插入db。我试过这个方法,效果很好。
为了实现这一点,我将int[]转换为c#中的xml,并在sp中使用这个xml变量来填充一个表变量,然后在这个表变量上循环执行插入操作。
有没有办法避免while循环并在表中插入多个逗号分隔的字符串?
代码如下:
DECLARE @CatTable TABLE(RowID int not null primary key identity(1,1), ID int)
DECLARE @RowsToProcess int
DECLARE @CurrentRow int
INSERT INTO @Table
SELECT tbl.colname.value('text()[1]','int') AS Id
FROM @IdsList.nodes('/List/CIds') tbl(colname);
SET @RowsToProcess=@@ROWCOUNT
SET @CurrentRow=0
WHILE @CurrentRow<@RowsToProcess ---**How to avoid this loop and do the insert ?**
BEGIN
SET @CurrentRow=@CurrentRow+1
INSERT INTO tblRealtable (id, anotherId)
SELECT ID ,@AnotherID FROM @Table
WHERE RowID=@CurrentRow
END
enD
END
1条答案
按热度按时间jhiyze9q1#
你不是刚看完这个吗?