我想知道如何从SQL中的表值参数中删除值? 这甚至可能吗?如果没有,那么解决方法是什么?
请参阅下面的代码并注明评论。注释部分是我想插入一行的地方,这条线允许我从TVP中删除记录@Record_NumList
删除该记录后,我继续插入一个新记录(基本上,我不想在现有记录上执行存储过程)。
DECLARE @RecordID int
DECLARE @RecordID_NumList as Le_NumberList
DECLARE cur_DelRec CURSOR
FOR
SELECT DBRecordID from <<table_name>>
OPEN cur_DelRec
FETCH NEXT from cur_DelRec into @RecordID
INSERT into @RecordID_NumList(@RecordID)
WHILE @@FETCH_STATUS = 0
BEGIN
exec <<stored_procedure>> @RecordID_NumList
/* I'm stuck here: */
/* Need to remove from the existing record
from @RecordID_NumList */
FETCH NEXT FROM cur_DelRec into @RecordID
INSERT into @RecordID_NumList(@RecordID)
END
CLOSE cur_DelRec
DEALLOCATE cur_DelRec
在更一般的层面上,TVP是一个集合吗?假设我选择不从@Record_NumList中删除它。在那种情况下会发生什么?
我道歉,但我仍在学习SQL,我们将非常感谢任何帮助!
雷
答案 0 :(得分:3)
表值参数就像常规表一样工作。你应该能够做这样的事情:
delete from @Record_numList where [field] = [value]