如何使用SSMS中的表值参数执行存储过程 [英] How to execute stored procedure with table-valued parameter from SSMS
本文介绍了如何使用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屋!
查看全文