2015-06-10 140 views
0

我只是想這樣做,像這樣的測試函數的返回值:打印的用戶定義函數

PRINT fnctGeneric([argument]) 

我搜索周圍,但不能發現任何東西。試圖https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=SQL+Print+function+return+value- https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=SQL+Print+return+value+from+user-defined+function- https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=SQL+Print+return+value+from+function

和搜查堆棧

https://stackoverflow.com/search?q=Print+return+value+of+function+SQL

,但沒有發現任何東西。

我以爲這會很容易,很容易找到,但事實並非如此,所以我只能假設我錯過了一些東西。

所以我的問題是你如何簡單地打印函數的返回值?在打印之前,是否需要在變量中存儲該值?

不能做到這一點:

DECLARE @Return AS VARCHAR(MAX) 
SET @Return = fnctCalculateCertName(4471) 
PRINT @Return 

因爲這

消息195,級別15,狀態10,行205 'fnctCalculateCertName' 的是無法識別的內置函數名稱。

不能做我的第一次嘗試:

PRINT fnctCalculateCertName(4471) 

又因爲同樣的錯誤。不能做到這一點:

SELECT fnctCalculateCertName(4471) FROM system 

或者這樣:

DECLARE @Return AS VARCHAR(MAX) 
SELECT @Return = fnctCalculateCertName(4471) FROM system 
PRINT @Return 

我不能相信它是如此難以打印這樣的功能的結果:/

而且這肯定是在我的數據庫,我可以在標量值函數標籤中看到它

+1

聽起來好像你的功能有問題。你是否檢查過函數是否存在?你有沒有嘗試添加像「dbo.fnctCalculateCertName」這樣的模式? – Stephan

+0

你需要添加架構,當調用函數 –

回答

1

當調用函數時,您需要添加模式:

PRINT dbo.fnctGeneric([argument]) 
+0

哇。我知道我錯過了一些東西:(我的腦袋可能真的會爆炸) –

+0

爲什麼?爲什麼,爲什麼,爲什麼,爲什麼功能需要架構而大多數人不需要?DAMN YOU MICROSOFT –

+0

我會說一些不適合的東西工作,但因爲我在工作,這將是不合適的。 –