使用它通过“创建类型表”传递数组。用户的简单示例
CREATE TYPE unit_list AS TABLE (
ItemUnitId int,
Amount float,
IsPrimaryUnit bit
);
GO
CREATE TYPE specification_list AS TABLE (
ItemSpecificationMasterId int,
ItemSpecificationMasterValue varchar(255)
);
GO
declare @units unit_list;
insert into @units (ItemUnitId, Amount, IsPrimaryUnit)
values(12,10.50, false), 120,100.50, false), (1200,500.50, true);
declare @spec specification_list;
insert into @spec (ItemSpecificationMasterId,temSpecificationMasterValue)
values (12,'test'), (124,'testing value');
exec sp_add_item "mytests", false, @units, @spec
//Procedure definition
CREATE PROCEDURE sp_add_item
(
@Name nvarchar(50),
@IsProduct bit=false,
@UnitsArray unit_list READONLY,
@SpecificationsArray specification_list READONLY
)
AS
BEGIN
SET NOCOUNT OFF
print @Name;
print @IsProduct;
select * from @UnitsArray;
select * from @SpecificationsArray;
END