函數中寫 `GETDATE()` 編譯報錯:「Invalid use of 'getdate' within a function」;改 `dbo.GETDATE()` 編譯通過但執行報「無效物件名稱」。
SQL 2000 禁止在函數中使用非確定性函數(`GETDATE()` 為非確定性)。
CREATE FUNCTION dbo.FUN_GenerateRaminiSampleNo(@Type VARCHAR(10), @DateTime DATETIME)
RETURNS VARCHAR(30)
AS BEGIN
DECLARE @Date VARCHAR(8);
SELECT @Date = CONVERT(VARCHAR(8), @DateTime, 112); -- 使用參數
-- 業務邏輯
RETURN @SampleNo;
END;
呼叫時 `SELECT dbo.FUN_GenerateRaminiSampleNo('A', GETDATE())`。
CREATE VIEW v_CurrentDateTime AS SELECT GETDATE() AS NowTime;
函數中 `SELECT @Date = CONVERT(VARCHAR(8), NowTime, 112) FROM v_CurrentDateTime`。
SQL 2005+ 已支援函數內直接呼叫 `GETDATE()`,無此限制。