Gor*_*ran 8 ssms sql-server-2012
当我右键单击存储过程,并选择执行存储过程命令时,我应该将表值参数作为值传递给什么?
我不是在谈论SSMS"查询"窗口.我正在谈论右键单击SP时显示的"执行过程"对话框.
我可以通过此屏幕直接将参数值提供给SP吗?
小智 6
这可以完成。例如,假设您定义了此表类型:
CREATE TYPE dbo.ContactsList AS TABLE ( ContactID VARCHAR(25) NOT NULL ); GO
Run Code Online (Sandbox Code Playgroud)
您想执行一个存储过程,该存储过程仅在SSMS中采用这种类型的一个参数。为此,请从SSMS中选择“执行存储过程”,为参数值提供JUNK值,然后单击“确定”。这将生成执行存储过程的样板代码,并给您一条错误消息。
接下来,将样板修改为类似的内容,@ContactIdsTableParameter用您自己提供的JUNK值替换(使用您自己的变量名):
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
Run Code Online (Sandbox Code Playgroud)
最后,<F5>例如,使用上述版本。