2015-06-10 73 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

我会说一些不适合的东西工作,但因为我在工作,这将是不合适的。 –