SQL Server でインライン スカラー関数を作成する正しい構文は何ですか?
Books Onlineの関数の種類の章 (2005 年以降) では、インライン スカラー関数が存在するかのように説明されており、BEGIN...END
(複数行の関数とは対照的に) ブロックが必要ないかのように説明されています。
インライン スカラー関数の場合、関数本体はありません。スカラー値は単一ステートメントの結果です。複数ステートメントのスカラー関数の場合、BEGIN...END ブロックで定義される関数本体には、単一の値を返す一連の Transact-SQL ステートメントが含まれます。
また、spt_values テーブルのオブジェクト タイプのリストに「IS: inline scalar function」の行があることにも気付きました。
SELECT name
FROM master..spt_values
WHERE type = 'O9T'
AND name LIKE '%function%'
そのような関数を作成しようとしましたが、成功しませんでした:
CREATE FUNCTION AddOne(@n int) RETURNS int
AS
RETURN @n + 1
エラーメッセージは
メッセージ 102、レベル 15、状態 31、プロシージャ AddOne、行 3 'RETURN' 付近の構文が正しくありません。
オンライン ブックに何か不足していますか、それともエラーがありますか?