Jaka jest prawidłowa składnia, aby utworzyć wbudowaną funkcję skalarną w serwerze SQL Server?Inline funkcje skalarne: prawdziwe lub vaporware?
Books Online, w Types of Functions rozdziału (2005 i więcej), opowiada o Inline funkcji skalarnych, jak gdyby one istnieją i jak gdyby nie jest wymagane BEGIN...END
blok (w przeciwieństwie do funkcji multiline):
dla wbudowana funkcja skalarna, nie ma ciała funkcyjnego; wartość skalarna jest wynikiem pojedynczej instrukcji. W przypadku wielostanowiskowej funkcji skalarnej treść funkcji zdefiniowana w bloku BEGIN ... END zawiera serię instrukcji Transact-SQL, które zwracają pojedynczą wartość.
Zauważyłem również wiersz dla „IS: inline funkcja skalarna” na liście typów obiektów w tabeli spt_values:
SELECT name
FROM master..spt_values
WHERE type = 'O9T'
AND name LIKE '%function%'
próbowałem stworzyć taką funkcję bez powodzenia :
CREATE FUNCTION AddOne(@n int) RETURNS int
AS
RETURN @n + 1
komunikat o błędzie jest
Msg 102, Poziom 15, Stan 31, Procedura AddOne, Wiersz 3 Niepoprawna składnia w pobliżu 'RETURN'.
Czy brakuje mi czegoś lub czy jest błąd w książkach online?
Nie widzę, jak BOL dla CREATE FUNCTION, ani link, do którego się odwołuje, oznacza, że nie potrzebujesz bloków BEGIN..END. Myślę, że coś źle czytasz. –
Aby wyjaśnić, chciałbym utworzyć funkcję typu "IS", a nie "FN" lub "TF". –
Co oznacza "dla wbudowanej funkcji skalarnej, nie ma ciała funkcyjnego"? –