2011-01-10 100 views
0

我在玩弄一些代碼,並意識到可以將參數覆蓋到t-sql函數中。即在t-sql函數中覆蓋參數

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

如果參數爲空,則將@date設置爲今天的日期。

如果t-sql將參數視爲引用而不是值,這似乎只是有意義的。我意識到我實際上並不知道t-sql規則適用於這種情況,並希望有人能詳細說明這裏發生了什麼。 (我永遠不會記得看到任何價值與參考討論關於t-sql代碼的事實上..)

回答

1

你正在這裏工作的@date是你的函數的本地。您將更改函數內的值,但不會影響調用代碼中的值。

0

函數必須用返回值/類型聲明,最後一個聲明必須是返回語句。如果您的上次統計信息返回@date,則將返回Getdate()值。