在存储过程中保存tsql函数的结果
问题描述:
我遇到了我正在为SQL Server编写的存储过程的问题。在存储过程中保存tsql函数的结果
我在存储过程中调用一个函数,该函数返回一个带有值的2列表。这个值我想分配给一个VARCHAR变量,用于我的存储过程的其余部分。
DECLARE @TEAM VARCHAR(100)
SET @TEAM = (SELECT DISTINCT value fn_split(@foldernarrative, '-') WHERE idx = 0)
该功能适用于自身的,但是当加入到我的存储过程,我得到的语法错误,如
Server: Msg 170, Level 15, State 1, Line 94
Line 94: Incorrect syntax near '('.
我是很新的这一点,我不明白为什么这是一个问题。
任何帮助将被很好地接收。
谢谢。
答
我觉得你从表值函数中选择时缺少一个FROM关键字。
试试这个:
DECLARE @TEAM VARCHAR(100)
SET @TEAM = (SELECT DISTINCT value FROM fn_split(@foldernarrative, '-') WHERE idx = 0)
答
由于dariom指出,但你也将需要添加对象所有者如果fn_split是一个函数。
DECLARE @TEAM VARCHAR(100)
SET @TEAM = (SELECT DISTINCT value FROM dbo.fn_split(@foldernarrative, '-') WHERE idx = 0)
答
当然,如果你的函数不能返回多于一行,这段代码才会起作用。
答
您可能会在@foldernarrative附近添加一个IsNull,以防您有意或无意地将NULL传递给它。
哦......这是那些早晨的其中之一... – 2009-06-04 07:29:52