Использование SQLServer 2008.
Пример TVF с несколькими утверждениями:
CREATE TABLE DBO.DECTEST (ID INT NOT NULL PRIMARY KEY,
V1 DECIMAL(18,6) NOT NULL, V2 DECIMAL(18,6) NOT NULL)
INSERT DECTEST VALUES (1, 23.1234, 25.22)
GO
DROP FUNCTION DBO.F_DECTEST1
GO
CREATE FUNCTION DBO.F_DECTEST1
(
@ID INT
)
RETURNS @RESULT TABLE
(
V1 DECIMAL(18,6),
V2 DECIMAL(18,6)
)
AS
BEGIN
DECLARE @V1 DECIMAL (18,6)
DECLARE @V2 DECIMAL(18,6)
SELECT @V1 = V1, @V2 = V2 FROM DBO.DECTEST WHERE ID = @ID
INSERT @RESULT (V1, V2) VALUES (ISNULL(@V1, 0), ISNULL(@V2, 0))
RETURN
END
GO
Я хочу изменить это на встроенный TVF (из соображений производительности).Обратите внимание, что одна строка всегда возвращается в наборе результатов - даже если передается несуществующий идентификатор.Есть ли чистый способ сделать это?