编译数据库项目时如何处理临时表

问题描述 投票:0回答:2

我们刚刚创建了一个包含多个数据项目的解决方案。我们继承了系统并想要进行数据库清理,但是当我们编译某些数据库时,我们收到错误表,id等不存在,并且它发生在存储过程中创建临时表的地方。

假设一个存储过程创建了一个临时表,最后将其删除,编译器抱怨并说该表不存在(在数据库模式中)。我们如何解决这个问题?有什么设置我找不到?

提前致谢。

visual-studio-2010 sql-server-2008 data-tier-applications
2个回答
2
投票

Microsoft Connect 中对此问题提出了一个错误,并建议了一种解决方法:使用表变量而不是临时表。所以,使用

declare @t table (ID int, Name nvarchar(100) )
insert into @t ...

而不是

create table #t (ID int, Name nvarchar(100) )
insert into #t ...
drop table #t

0
投票

使用表变量而不是临时表是一个可怕的解决方法,因为表变量不会生成和使用数据库统计信息。对于超过 100 条记录的表,性能非常糟糕!!!

© www.soinside.com 2019 - 2024. All rights reserved.