如何使用SSMS中的表值参数执行存储过程 [英] How to execute stored procedure with table-valued parameter from SSMS

查看:40
本文介绍了如何使用SSMS中的表值参数执行存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我右键单击存储过程,并选择"执行存储过程命令"时,我应该将什么作为值传递给表值参数?

我不是在谈论SSMS"查询"窗口。我指的是右键单击SP时显示的"执行过程"对话框。

是否可以通过此屏幕将参数值直接提供给SP?

推荐答案

可以这样做。例如,我们假设您定义了以下表类型:

CREATE TYPE dbo.ContactsList AS TABLE ( ContactID VARCHAR(25) NOT NULL ); GO

您想要执行一个存储过程,该存储过程只从SSMS中接受一个此类型的参数。为此,请从SSMS中选择"执行存储过程",为参数值提供垃圾值,然后单击"确定"。这将生成用于执行存储过程的样板代码,并向您显示一条错误消息。

接下来,将样板修改为类似以下内容,用@ContactIdsTableParameter(使用您自己的变量名)替换先前提供的垃圾值:

DECLARE @ContactIdsTableParameter AS dbo.ContactsList

INSERT INTO @ContactIdsTableParameter (ContactID)
    SELECT 1
INSERT INTO @ContactIdsTableParameter (ContactID)
    SELECT 100002787

SELECT * FROM @ContactIdsTableParameter

DECLARE @return_value int

EXEC    @return_value = [dbo].[usp_MGOAssignmentsGet]
        @ContactIdsTable = @ContactIdsTableParameter

SELECT  'Return Value' = @return_value

GO

最后,例如使用<F5>执行您的上述版本。

这篇关于如何使用SSMS中的表值参数执行存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆