私は日付のテーブルを[BadDates]と呼んでいます。すべてのレコードが除外する日付の列が1つだけあります。SQL Server 2005の低速UDFのヘルプ
CREATE FUNCTION [dbo].[udf_GetDateInBusinessDays]
(
@StartDate datetime, --Start Date
@NumberDays int --Good days ahead
)
RETURNS datetime
AS
BEGIN
-- Declare the return variable here
DECLARE @ReturnDate datetime
SET @ReturnDate = @StartDate
DECLARE @Counter int
SET @Counter = 0
WHILE @Counter < @NumberDays
BEGIN
SET @ReturnDate = DateAdd(d,1,@ReturnDate)
IF ((SELECT COUNT(ID)
FROM dbo.[BadDates]
WHERE StartDate = @ReturnDate) = 0)
BEGIN
SET @Counter = @Counter + 1
END
END
RETURN @ReturnDate
END
このUDFは素晴らしい作品が、それは、処理が遅いですが、次のように私は、UDFを持っています。これを使用するストアドプロシージャは、すべてのレコードでUDFを実行します。この同じ機能をより高速な方法で提供する他の方法はありますか?
ご協力いただきありがとうございます。
あなたは達成しようとしていることを高レベルの英語で記述できますか? –