Dondariadmin (トーク | 投稿記録) (ページの作成: == 環境 == *DBMS = SQL Server 2005ぐらい == ストアドプロシージャの戻り値 == *どうやら、ストアドプロシージャ(PROCEDURE)は戻り値として...) |
Dondariadmin (トーク | 投稿記録) |
||
48行目: | 48行目: | ||
*できました。なぜPROCEDUREと同じじゃないんでしょう…まさかオーバーロードできる…わけないですね。 | *できました。なぜPROCEDUREと同じじゃないんでしょう…まさかオーバーロードできる…わけないですね。 | ||
+ | |||
+ | [[Category:SQL]] |
CREATE FUNCTION testfunc ( @str nvarchar(max) , @len int = 3 ) RETURNS nvarchar(max) AS BEGIN RETURN LEFT(@str,@len); END;
select dbo.testfunc('ABCDEFG') メッセージ 313、レベル 16、状態 2、行 1 プロシージャまたは関数 dbo.testfunc に指定された引数が不足しています。
[ = default ] パラメータの既定値です。default 値が定義されている場合は、パラメータに値を指定せずに関数を実行できます。
関数のパラメータに既定値がある場合に、既定値を取得する目的でその関数を呼び出すときは、 DEFAULT キーワードを指定する必要があります。この動作は、ストアド プロシージャで既定値 を持つパラメータを使用する場合とは異なります。ストアド プロシージャの場合は、パラメータ を省略すると既定値が暗黙的に使用されます。
select dbo.testfunc('ABCDEFG', DEFAULT) --------------------------------------- ABC (1 行処理されました)