【发布时间】:2015-05-21 13:48:11
【问题描述】:
我需要在一个存储过程中插入多条记录。
我使用“表值参数”,来自 c# 代码并将其传递给存储过程。 (此 TVP 有一个分析 ID 列表)
所以,我正在尝试创建一个循环;插入多条记录并迭代直到@TVP 行的最大行大小。
如何获取在 SP 中传递的 TVP(表值参数)的行大小并在这些 TVP 行中迭代以一一获取它们的 tvp.id,以进行多次插入?
SP是这样的:
create proc insertTable
(
@nID int,
@TVP Analises READONLY
)
as
declare @i int
BEGIN
While @i <--max rownumber of @TVP
BEGIN
--insert into tbl_insertAnalyses
--values(@nID,@tvp.analiseID[i]) -- >need to iterate here
END
END
谢谢。
【问题讨论】:
-
尝试使用类似:
INSERT tbl_insertAnalyses (col1, col2) SELECT col1, col2 FROM @TVP并忘记你的循环 -
我忘记了循环!谢谢:) @KM。
标签: sql-server stored-procedures iteration table-valued-parameters