2012-09-25 24 views
11

我正在創建一個將行插入表的簡單函數。 插入後我不需要函數返回任何東西。 我剛剛在MSDN中檢查了函數創建語法,看起來好像 函數必須返回一個值。我也嘗試創建一個函數,但得到語法錯誤。在SqlServer中創建一個不返回任何東西的函數

我不知道是否有辦法創建一個不返回任何值的函數。

任何人都可以讓我知道是否有辦法創建這樣的功能? 在此先感謝:)

回答

13

然後使用存儲過程來實現您的要求。因爲函數是爲了返回值。

+0

謝謝,但我可以在其他存儲過程內調用這個新的存儲過程嗎? – Narendra

+0

確定你可以打電話給這個 – AnandPhadke

+0

好的。我將創建一個proc而不是函數。 – Narendra

9

創建存儲過程而不是函數

Create proc my_proc() 
as 
BEGIN 
<your insert statement > 

END 

Examples here

+0

謝謝,但是我可以在其他存儲過程中調用這個新的存儲過程嗎? – Narendra

+0

是的,你可以撥打 –

+0

好的。我將創建一個proc而不是函數。 – Narendra

2

除了其他的答案,我會加入一個明顯的例子:

我創建一個簡單的函數它將一行插入到表中。

函數不能插入一行到表中(根據定義,SQL Server中的函數不應該有任何副作用,這與其他語言中的函數不同),所以無論你是否關心返回價值,無論如何都無法完成。您將需要使用存儲過程。

1

根據SQL Server,你不能有一個沒有返回值的函數。它必須返回一個值。在你的情況下,我會建議去存儲過程。

相關問題