Sql 对存储过程中用户定义的表类型中的每条记录执行

Sql 对存储过程中用户定义的表类型中的每条记录执行,sql,sql-server,Sql,Sql Server,:) 我定义了以下类型: CREATE TYPE dbo.MyType AS TABLE ( name varchar(255), value varchar(255) ); 具有此存储过程: CREATE PROCEDURE MyProcedure @docName varchar(255), @docPath varchar(255), @values AS [dbo].MyType Readonly AS declare @ID table (ID int) INSERT INTO

:)

我定义了以下类型:

CREATE TYPE dbo.MyType
AS TABLE
(
name varchar(255),
value varchar(255)
);
具有此存储过程:

CREATE PROCEDURE MyProcedure @docName varchar(255), @docPath varchar(255), @values AS [dbo].MyType Readonly
AS

declare @ID table (ID int)

INSERT INTO MyTable output inserted.fileID into @ID values (@docName,@docPath)

-- insert loop here

GO;
以及下面的“一对多”表

在上面代码中提到的地方,我如何做一个循环,以便为
MyType
表中的每个记录将其与
insert
中的文件ID一起插入到TableN中


谢谢

不需要循环(您需要停止在SQL中以编程方式思考,而在数据集中思考)。只需插入一个

INSERT INTO TableN (FileID,[name],[value])
SELECT ID.ID,
       V.[Name],
       V.[value]
FROM @values v
     CROSS JOIN @ID ID;

不需要循环(您需要停止在SQL中以编程方式思考,而在数据集中思考)。只需插入一个

INSERT INTO TableN (FileID,[name],[value])
SELECT ID.ID,
       V.[Name],
       V.[value]
FROM @values v
     CROSS JOIN @ID ID;

完美的谢谢!完美的谢谢!