有一个公共存储过程,它接收客户ID并返回该客户的订单信息。客户ID作为单个整数参数。我希望能够运行它并为所有客户提取所有订单,但我无法修改存储过程。
是否存在可以作为客户ID发送的通配符,该通配符会欺骗存储过程返回所有现有客户订单?
提前致谢
答案 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