我正在尝试向我的 SQL Server 2005 Express 中的存储过程添加一个表适配器。但是,存储过程使用名为#temp 的临时表。创建表适配器时,Visual Studio 抱怨“未知对象'#temp'”并说存储过程返回 0 列。这是有问题的,因为我将该存储过程与水晶报表一起使用,并且需要这些列。
我怎样才能解决这个问题?
我正在尝试向我的 SQL Server 2005 Express 中的存储过程添加一个表适配器。但是,存储过程使用名为#temp 的临时表。创建表适配器时,Visual Studio 抱怨“未知对象'#temp'”并说存储过程返回 0 列。这是有问题的,因为我将该存储过程与水晶报表一起使用,并且需要这些列。
我怎样才能解决这个问题?
奇怪。根据这个你添加
IF 1=0 BEGIN
SET FMTONLY OFF
END
在 SP 的 AS 部分之后到 SP 并且它可以工作。Visual Studio 现在已经没有问题了。我不知道为什么会这样,或者为什么会起作用,但确实如此。
这可能是一个旧线程并且找到了答案,但是当有人进入您的存储过程并看到这段代码时,他真的不明白。还有另一种正确执行此操作的方法,即简单地将表声明为如下变量:
DECLARE @temp TABLE
(
SomeText1 nvarchar(255),
SomeText2 nvarchar(255)
)
另外,不要忘记在最后删除 DROP TABLE。
PS:如果您确实需要使用临时表,因为您需要创建它,那么您必须编写上一个答案中给出的代码。希望这可以帮助。