执行SQL麻烦

Mic*_*ael 2 sql t-sql sql-server

我尝试执行我的存储过程,但我遇到了麻烦.

存储过程的参数之一定义如下:

@MerchId [dbo].[intArray] READONLY,
Run Code Online (Sandbox Code Playgroud)

它是用户定义的表类型.

以下是上述类型的定义:

CREATE TYPE [dbo].[intArray] AS TABLE ([num] [int] NULL)
Run Code Online (Sandbox Code Playgroud)

以下是我尝试设置值并执行的方法:

exec    @return_value = [dbo].[SPMerchData],
        @MerchId = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

但是我收到了语法错误.

知道怎样才能将值设置为@MerchId变量来执行存储过程?

Tyr*_*n78 5

您应该声明一个变量并将其传递给您的过程:

DECLARE @t intArray;
INSERT INTO @t VALUES (1), (2), (3);

exec    @return_value = [dbo].[SPMerchData],
        @MerchId = @t
Run Code Online (Sandbox Code Playgroud)