'。'附近的语法不正确在SQL Server表值函数

问题描述:

我试图用表值函数的加入, 它给了我错误此错误:'。'附近的语法不正确在SQL Server表值函数

消息170,级别15,状态1,2号线 2号线:附近有语法错误'。

SELECT * from tbl t 
inner join dbo.ufn_CSVToTable(t.text) a 
on t.text = a.String 

什么可以是错误?

+0

“(t.text)”是什么意思? – Baatar 2012-01-05 20:28:20

+0

请发布代码后面的代码 - 否则无法帮助您。 – Eric 2012-01-05 20:28:42

+0

文本是表tbl中的列名。 – Sami 2012-01-05 20:29:49

尝试使用CROSS APPLY代替JOIN

SELECT * from tbl t 
CROSS APPLY dbo.ufn_CSVToTable(t.text) a 
WHERE t.text = a.String 
+0

错误:消息170,级别15,状态1,行2 行2:'APPLY'附近语法不正确。 – Sami 2012-01-05 20:37:05

+2

需要兼容级别90或更高http://msdn.microsoft.com/en-us/library/bb510680.aspx – gbn 2012-01-05 22:01:54

也许尝试是一个有点更加明确 -

SELECT * from tbl 
inner join dbo.ufn_CSVToTable(tbl.text) a 
on tbl.text = a.String 

  1. 你需要CROSS或OUTER APPLY
  2. 你需要在SQL Server 2005+
  3. And 最重要重要,database compatibility需要90或更高