2011-01-10 24 views
0

私はいくつかのコードで遊んでいましたが、引数をt-SQL関数に上書きすることができることを認識しました。すなわち、t-sql関数の引数を上書きする

create function someFn(@date date) as 
begin 
if @date is null set @date = getdate() 

は、引数がnullの場合、@ dateを今日の日付に設定します。

これは、t-sqlが引数を値ではなく参照として扱っている場合にのみ意味を持ちます。私は実際に、このような場合にt-SQLのルールが何であるかを実際には知りませんし、誰かがここで何が起こっているのかを詳しく知りたいと思っていました。 (実際には、t-sqlコードに関して、値対参照の議論を実際に見ていることを思い出してください。)

答えて

1

@dateここで作業しているのは、あなたの関数にとってローカルです。関数内で値を変更しますが、呼び出しコードの値には影響しません。

0

関数は戻り値/型で宣言する必要があり、最後の文はreturn文でなければなりません。最後の文が@dateを返した場合、Getdate()の値が返されます。

関連する問題