如何创建或替换表

时间:2014-01-21 20:12:53

标签: teradata

teradata有没有办法

CREATE OR REPLACE VOLATILE TABLE 
AS
(
SELECT 

)

如果表格已经存在,我需要确保它不会停止

2 个答案:

答案 0 :(得分:3)

由于易失性表仅在当前会话中可见,因此您应该知道已创建了哪些表。

否则我会先尝试DROP TABLE并忽略可能的“对象不存在”错误。

答案 1 :(得分:1)

简答:否。易失性表定义未存储在数据字典表DBC.Tables中。与Global Temporary表不同,DBC.TempTables中的字典表也不会跟踪volatile表的实例化。

更长的回答:您可以但这取决于您的SQL执行位置。

您可以使用SELECT 1 FROM {VolatileTableName} WHERE 1=0;SELECT 'X' FROM {VolatileTableName] GROUP BY 1;之类的内容检查是否存在表,如果对象不存在则捕获错误。如果您没有收到错误,则该对象存在。在不知道代码运行的位置(BTEQ,存储过程,宏)的情况下,很难解释相应的错误处理。