如果参数单独声明,则EXEC sproc不返回任何结果

时间:2012-11-12 12:59:09

标签: sql-server

我很困惑为什么会返回结果:

EXEC GTKT_SP_Attachments @Operation = N'GetAllPhotoIDs', @TicketID = 1

但这不是:

DECLARE @Operation AS nvarchar(29) = N'GetAllPhotoIDs',
        @TicketID AS int = 1

EXEC GTKT_SP_Attachments @Operation, @TicketID

有什么想法吗?

更新: EXEC GTKT_SP_Attachments @TicketID,@ Operation 不起作用,因为Operation和TicketID之间有更多参数(错误:将数据类型nvarchar转换为int时出错); GTKT_SP_Attachments @Operation = @Operation,@ TicketID = @TicketID 不会返回原始调用之类的内容

1 个答案:

答案 0 :(得分:2)

EXEC GTKT_SP_Attachments @Operation, @TicketID

与输入

相同
EXEC GTKT_SP_Attachments N'GetAllPhotoIDs', 1
在你的例子中

。正如Mikael在上面的评论中提到的,参数是按位置绑定的,而不是名称。

使用

EXEC GTKT_SP_Attachments @Operation = @Operation, @TicketID = @TicketID