Sybase删除临时表

时间:2010-11-23 03:13:53

标签: temp-tables sybase-ase

当您在Sybase ASE 12上删除临时表时,是否有人遇到问题,它仍会在当前会话中保留。因此,当您尝试再次选择数据时,您会遇到“表已存在”

2 个答案:

答案 0 :(得分:1)

嗯,在编写代码之前,您需要阅读手册,至少是您希望使用的命令的语法。否则你将在任何时候都面临问题。这取决于你想要做什么。

  1. SELECT ... INTO #MyTable创建一个表并成功,因为它不存在。因此,第二个SELECT ... INTO #MyTable会尝试创建#MyTable,发现它存在并失败。

  2. 如果您想在表格SELECT的相同表格中执行第二次TRUNCATE,请使用SELECT ... INTO EXISTING TABLE #MyTable

  3. DROP TABLE并跳过EXISTING TABLE修饰符。

  4. 如果您希望表格包含多个SELECTS的总和,请跳过TRUNCATE

答案 1 :(得分:1)

我通常这样做:

1)CREATE TABLE #temptable( ....

INSERT INTO #temptable 选择.....

这永远不会出错。

这解决了另一个可能的错误。如果“select INTO”附带的WHERE子句不产生任何行,则临时表不会有零行,但根本不会创建临时表。这可能会使存储过程稍后爆炸。