0

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

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不会像原始调用那样返回任何内容

4

1 回答 1

2
EXEC GTKT_SP_Attachments @Operation, @TicketID

和打字是一样的

EXEC GTKT_SP_Attachments N'GetAllPhotoIDs', 1

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

采用

EXEC GTKT_SP_Attachments @Operation = @Operation, @TicketID = @TicketID
于 2012-11-12T14:45:22.923 回答