我很困惑为什么会返回结果:
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 不会返回原始调用之类的内容
答案 0 :(得分:2)
EXEC GTKT_SP_Attachments @Operation, @TicketID
与输入
相同EXEC GTKT_SP_Attachments N'GetAllPhotoIDs', 1
在你的例子中。正如Mikael在上面的评论中提到的,参数是按位置绑定的,而不是名称。
使用
EXEC GTKT_SP_Attachments @Operation = @Operation, @TicketID = @TicketID