为什么我的类型化数据集不像临时表?

时间:2009-05-28 16:31:40

标签: tsql stored-procedures visual-studio-2008 strongly-typed-dataset sql-server-2005-express

我正在尝试将tableadapter添加到SQL Server 2005 Express中的存储过程。但是,存储过程使用名为#temp的临时表。创建表适配器时,Visual Studio会抱怨“未知对象'#temp'”并表示存储过程返回0列。这是有问题的,因为我将该存储过程与水晶报告一起使用,并且需要这些列。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:31)

怪异。根据{{​​3}}添加

IF 1=0 BEGIN
    SET FMTONLY OFF
END
在SP的AS部分之后立即到SP,它可以工作。 Visual Studio现在没有问题。我不知道为什么它会这样工作,或者它为什么会工作,但确实如此。

答案 1 :(得分:1)

这可能是一个旧线程并找到答案,但是当有人进入你的存储过程后看到这段代码时,他真的不明白。还有另一种方法可以正确地执行此操作,只需将表声明为变量,如下所示:

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

另外,不要忘记在最后删除DROP TABLE。

PS:如果你真的需要使用临时表,因为你需要创建它,那么你必须编写上一个答案中给出的代码。希望这会有所帮助。