如何使用通配符为Integer参数调用存储过程

时间:2018-02-21 21:44:09

标签: sql-server tsql reporting-services

有一个公共存储过程,它接收客户ID并返回该客户的订单信息。客户ID作为单个整数参数。我希望能够运行它并为所有客户提取所有订单,但我无法修改存储过程。

是否存在可以作为客户ID发送的通配符,该通配符会欺骗存储过程返回所有现有客户订单?

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以为参数传递NULL并调整存储的proc以适当地处理:

CREATE PROCEDURE GetCustomerOrders 
(
    @CustomerId int = NULL
) 
AS
BEGIN
    SELECT * FROM CustomerOrders 
    WHERE @CustomerId IS NULL OR CustomerId = @CustomerId
END

然后你可以这样做:

exec GetCustomerOrders

exec GetCustomerOrders @CustomerId