【发布时间】:2017-11-06 18:38:58
【问题描述】:
我正在尝试在 SQL Server 中执行一个简单的存储过程。
USE [dbname]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[usp_storprocname]
@ID = NULL,
@SomeID = 123456,
@AddressTypeIDs = NULL
SELECT 'Return Value' = @return_value
GO
我得到的是一个错误:
消息 206,级别 16,状态 2,过程 usp_storprocname,第 0 行 [批处理开始第 2 行]
操作数类型冲突:NULL 与 SmallIntTable 不兼容
据我了解,它希望在@AddressTypeIDs 参数中获得某种带有数字的数组。我不需要按该字段过滤结果。我怎样才能在那里传递正确的值?
【问题讨论】:
-
我们需要您的 sp 代码来帮助您完成这个
-
@Lamak 你能告诉我如何得到它吗?右键单击 SP 上的修改按钮是灰色的,我没有看到任何其他选项来查看其代码。
-
那我就说你没权限看。你可以试试
sp_helptext 'usp_storprocname',但我敢打赌它也行不通 -
@Lamak 告诉我
There is no text for object 'usp_storprocname'.有没有办法在不知道其代码的情况下将SmallIntTable传递给这个存储过程? -
打开数据库下的 Programmability 树,然后在 Types>User-Defined Table Types 下查看,找出
SmallIntTable的样子。
标签: sql sql-server stored-procedures sql-server-2012