小编the*_*bit的帖子

来自param或变量的SQL WHERE IN

上下文

我们目前正在清理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)

sql vb.net sql-server stored-procedures

6
推荐指数
1
解决办法
172
查看次数

标签 统计

sql ×1

sql-server ×1

stored-procedures ×1

vb.net ×1