下面是我的sql更新,我正在尝试,但没有工作。但是当使用@sampids作为int数据类型时,它对单记录整数更新有效。任何帮助都将不胜感激。谢谢
DECLARE @sampids AS NVARCHAR(1000)='10,20,30'
DECLARE @sampcursorno AS INT=0
DECLARE sample_cursor CURSOR FOR
SELECT VALUE FROM Split(@sampids,',')
OPEN sample_cursor
FETCH NEXT FROM sample_cursor INTO @sampcursorno
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE tbl_Testing
SET SampId = @sampcursorno
FETCH NEXT FROM sample_cursor INTO @sampcursorno
END
CLOSE sample_cursor
DEALLOCATE sample_cursor
1条答案
按热度按时间5kgi1eie1#
我知道您想更新原始表,替换每个表
sampId
输入csv列表中的每个索引。根本没有
split()
sql server中的函数。你不能使用string_split()
,因为它不能保证零件的退货顺序。一种方法是使用递归查询拆分输入字符串,然后使用生成的数据集进行更新: