上下文
我们目前正在清理SQL数据库,我们遇到了大量的存储过程,它们之间只有细微的差别.我们希望将它们整合到一个单一的过程中,以便于维护.
问题
下面只是我们尝试合并的那种存储过程的两个例子(请注意,这些是简化版本,而不是实际的过程).
存储过程 - 当前预订
ALTER PROCEDURE [dbo].[SelectCurrentBookings]
@client_FK INT, @startDate DATETIME, @endDate DATETIME
AS
BEGIN
SELECT ROW_NUMBER() OVER (ORDER BY [Booking].[bookingDateTime]) [RowNumber],
[Booking].[booking_PK] [Booking ID],
[Booking].[bookingDateTime] [Booking Date],
[Booking].[bookingDuration] [Duration],
[Booking].[client] [Client Name],
CASE WHEN [Booking].[bookingStatusCode_FK] IN (4,8,9,7,16) THEN 1 ELSE 0 END [Unserviced],
FROM [Booking]
WHERE [client_FK] = @client_FK
AND [Booking].[bookingStatusCode_FK] IN (1,2,14,17)
AND [Booking].[bookingDateTime] >= @startDate
AND [Booking].[bookingDateTime] < DATEADD(d,1,@endDate)
AND [Booking].[deleted] = 0
END
Run Code Online (Sandbox Code Playgroud)
存储过程 - 存档预订
ALTER PROCEDURE [dbo].[SelectArchivedBookings]
@client_FK INT, @startDate DATETIME, …Run Code Online (Sandbox Code Playgroud)