9

我正在尝试添加一个tableadapter到我的SQL Server 2005 Express中的存储过程。但是,存储过程使用名为#temp的临时表。当创建表适配器时,Visual Studio会抱怨“未知对象#temp'”,并说存储过程返回0列。这是有问题的,因为我使用该存储过程的水晶报告,并需要这些列。为什么我的类型数据集不像临时表?

我该如何解决这个问题?

回答

30

奇怪。根据this您添加

IF 1=0 BEGIN 
    SET FMTONLY OFF 
END 

到SP后,SP作为SP的一部分,它的工作原理。 Visual Studio现在没有问题。我不知道为什么这样工作,或者它为什么会起作用,但它确实如此。

+2

有人可能有一个糟糕的发型。它帮助了我。 +1 – 2009-07-01 08:52:00

1

这可能是一个旧的线程,答案是找到的,但是当有人进入你的存储过程后,看到这段代码,他真的不明白。还有另一种方式来妥善做好这一点,它是简单地申报表作为像这样的变量:

DECLARE @temp TABLE 
(
    SomeText1 nvarchar(255), 
    SomeText2 nvarchar(255) 
) 

另外,不要忘记在结束时删除DROP TABLE。 PS:如果你真的需要使用临时表,因为你需要创建它,那么你必须编写上一个答案中给出的代码。希望这可以帮助。

相关问题