我正试图创建一个存储过程,该存储过程在执行时具有日期参数。我希望能够搜索特定日期之间发货的订单。我有这样的:带日期参数的存储过程
create procedure sp_orders_by_dates
@startdate smalldatetime,
@enddate smalldatetime
as
select OrderID,
o.CustomerID,
c.CompanyName as CustomerCompany,
s.ShipperID,
s.CompanyName as ShipperCompany,
ShippedDate
from Orders o join Customers c
on o.CustomerID = c.CustomerID join Shippers s
on s.ShipperID = o.ShipperID
where @startdate = ShippedDate,
@enddate = ShippedDate
order by ShippedDate
和执行,我一定要做到这样:
EXEC sp_orders_by_dates '1991-07-01', '1991-08-31'
我知道这部分是出了什么问题,但我只是无法弄清楚如何使“ “在这里的讲话之间:
where @startdate = ShippedDate,
@enddate = ShippedDate
备注:您应该**不要**为存储过程使用'sp_'前缀。微软已经保留了这个前缀以供自己使用(参见*命名存储过程*)](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx),以及你将来有可能冒着名字冲突的风险。 [这对你的存储过程性能也不好](http://sqlserverpedia.com/blog/sql-server-bloggers/stored-procedure-performance-using-%E2%80%9Csp_%E2%80%9D-prefix- %E2%80%93-神话或-事实/)。最好只是简单地避免使用'sp_'并将其他内容用作前缀 - 或者根本没有前缀! – 2013-03-17 08:51:25