繁体   English   中英

存储过程临时表导致超时错误

[英]Stored procedure temporary table causing timeout error

我在存储过程中有一个临时表,这在进行复杂的计算时导致查询超时。 我要在使用后将其删除。 它像

DECLARE @SecondTable TABLE

现在我不能使用

drop @SecondTable

实际上我必须使用

drop #SecondTable

有人知道为什么吗?

我绝对不是SQL专家,但是为什么还要删除它呢?

如果它是一个表变量,则一旦存储的proc退出,它将不再存在。

实际上,让我感到惊讶的是DROP #SecondTable没有对您出错。 因为您要在此处放置临时表; 不是表变量。

编辑

因此,根据您的评论,我的更新如下:

1.)如果您使用的是表变量( @SecondTable ); 那么就没必要掉落 SQL Server将为您解决此问题。

2)听起来您的超时是由使用表进行的计算引起的,而不是表本身的删除引起的。 在这种情况下; 我可能会建议使用临时表而不是表变量。 因为临时表可以让您添加索引等以提高性能; 而表变量不会。 如果还不够的话; 您可能需要增加查询的超时时间。

3.)在SQL中; 表变量( @SecondTable )和临时表( #SecondTable )是完全不同的两件事。 我会参考MSDN文档中的表变量临时表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM