在sql中执行SP时,传递只读数据类型的数据



我需要在Sql Server中执行一个SP。我使用外部脚本执行SP,如下所示。

Declare @partid int
Declare @Quantity float
Declare @unitCost float
Exec PRAMA.ins_parts @partid ,5,@Quantity ,@unitCost,'Adjusting balance' ,null 

在PRAMA.ins_parts SP中,

Create PROCEDURE [ins_parts]
@part_id as int
, @act as int
, @qty as float
, @cost as float
, @comment as nvarchar(500)
, @codes product_codes READONLY

AS
BEGIN
END

然后,当我对执行上述查询并将数据传递给SP时,它会显示一条错误消息"操作数类型冲突:NULL与Codes"不兼容;

有什么办法解决这个问题吗?有人能给我一个解决方案吗?

我找到了上述问题的解决方案。

首先,您必须在查询中声明表类型参数,然后向其中插入数据。在我的";product_ codes";表,它有id(int(和code(varchar(列。

Declare @product_codes Parts_Product_Codes
Declare @partid int
Declare @Quantity float
Declare @unitCost float
Insert into @product_codes Values(null,null)
Exec PRAMA.ins_parts @partid ,5,@Quantity ,@unitCost,'Adjusting balance' ,@product_codes