2013-02-11 22 views
3

有沒有一種方法使用帶表值函數的命名參數?我的用戶堅持使用他們的接口到我的數據庫對象。在表中使用命名參數值函數

+1

你在問怎麼做? 'select * from dbo.SomeFunction(@p = 1)'如果是這樣,答案是你不能,雖然我找不到任何具體說明它的文檔。知道他們爲什麼「堅持」會很有意思,如果他們對工具或其他問題有一些限制,那麼我建議你詢問一下這個限制,看看有沒有別的選擇。請參閱[這個問題](http://stackoverflow.com/questions/8219163/calling-an-in-line-tvf-with-named-parameters-what-is-the-proper-syntax)。 – Pondlife 2013-02-11 17:10:14

+0

該文檔有一個參數的示例http://msdn.microsoft.com/en-us/library/ms191165(v=SQL.105).aspx – Paparazzi 2013-02-11 18:13:00

+0

您可以舉一個你已經嘗試過的代碼的例子嗎?不適合你?如果他們只想在代碼的某個地方看到@p = 1,那麼@Pondlife建議你可以執行'Exec sp_executeSQL'Select * From dbo.SomeFunction(@p)作爲f',N'@ p Int',@p = 1;'。它仍然不會在函數中放入'@p = 1',但在末尾可以看到'@p = 1'作爲變量輸入。這會安撫他們嗎? – 2013-02-11 18:21:41

回答

2

不,你不能那樣做。與可以使用命名參數的存儲過程不同,表值函數中的參數嚴格基於位置。