2010-11-23 42 views
0

当您在Sybase ASE 12上删除临时表时,在当前会话中仍然存在问题时是否有人遇到问题?所以当你尝试再次选择数据时遇到“Table already exists”Sybase丢失临时表

回答

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

+0

谢谢,我发现在DROP TABLE #Tmp成功后,必须在另一批处选择INTO #Tmp。 – Luke 2010-11-28 04:35:51

0

我通常这样做:

1)CREATE TABLE #temptable( ....

INSERT INTO #temptable SELECT .....

这永远不会出错。

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