这个T-SQL出了什么问题?

时间:2010-07-12 08:57:58

标签: sql sql-server tsql

这个T-SQL出了什么问题:

DECLARE @temp TABLE(ID INT IDENTITY,[Value] VARCHAR(100))
SET @temp = dbo.[fnCSVToTable](',2,3')

2 个答案:

答案 0 :(得分:5)

我认为你不能像这样分配给表变量(除非它是SQL 2008中的新东西)。

至少对于SQL2005,您需要执行以下操作。

DECLARE @temp TABLE(ID INT IDENTITY,[Value] VARCHAR(100))

INSERT INTO @temp
SElECT [value] 
FROM dbo.[fnCSVToTable](',2,3')

答案 1 :(得分:3)

来自SETSQL 2008; SQL 2005)的文档(我的重点):

  

@ local_variable

     

是一个名字   除光标,文本,ntext,图像,或表格之外的任何类型的变量。

要填充表变量,请使用

INSERT @table_variable 
SELECT columns 
FROM dbo.fnTableValuedFunction