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;
完美的谢谢!完美的谢谢!