すべてのユーザー定義関数に入力パラメーターを渡すことは必須ですか?
ストアド プロシージャには、入力パラメーターと出力パラメーターの両方があります。関数には入力パラメーターしかありません。
これらのパラメーターを使用せずにストアド プロシージャを作成することもできます。入力パラメーターを使用せずにユーザー定義関数を作成することは可能ですか?
すべてのユーザー定義関数に入力パラメーターを渡すことは必須ですか?
ストアド プロシージャには、入力パラメーターと出力パラメーターの両方があります。関数には入力パラメーターしかありません。
これらのパラメーターを使用せずにストアド プロシージャを作成することもできます。入力パラメーターを使用せずにユーザー定義関数を作成することは可能ですか?
はい、間違いなくパラメータなしでユーザー定義関数を書くことができます。
もう1つ明確にしたいのは、関数には入力パラメーターがあり、戻り値があることです。戻り値は、作成する関数のタイプに応じてスカラーまたはテーブルになります。
数行を入力するだけで、それが可能であることがわかるのに、なぜそれが可能かどうか尋ねる必要があります ;-)
CREATE FUNCTION dbo.NoParamsUDF()
RETURNS NVARCHAR(50)
AS
BEGIN
RETURN N'It worked!';
END;
GO
CREATE FUNCTION dbo.NoParamsTVF()
RETURNS TABLE
AS RETURN
SELECT dbo.NoParamsUDF() AS [DidItWork?];
GO
SELECT * FROM dbo.NoParamsTVF();
戻り値:
うまくいきましたか?
-------------
うまくいきました!