首页 > 解决方案 > 在 sql 中执行 SP 时为 Readonly 数据类型传递数据

问题描述

我需要在 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 与代码不兼容”

有没有办法解决这个问题?任何人都可以建议我一个解决方案吗?

标签: stored-proceduressql-updatessmsreadonly

解决方案


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

首先,您必须在查询中声明表类型参数,然后向其中插入数据。在我的“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

推荐阅读