如何使用ANSI SQL创建临时表?

问题描述:

我想用ANSI SQL创建一个临时表,这样我就可以使用相同的查询在ORACLE和MSSQL中创建表。如何使用ANSI SQL创建临时表?

+0

你不能。没有创建临时表的标准。这是供应商特定的。 – OldProgrammer

Create temporary table using the following statement 

CREATE GLOBAL TEMPORARY TABLE my_temp_table (
     id   NUMBER, 
     description VARCHAR2(20) 
    ) 
    ON COMMIT PRESERVE ROWS; 


    ON COMMIT PRESERVE ROWS clause indicates that rows should persist beyond the end of the transaction. They will only be removed at the end of the session. 
+0

这只适用于Oracle,不适用于MSSQL。我想在ANSI SQL中执行此操作,以便它不依赖于数据库。 – Ashutosh

+0

@Ashutosh总是不可能的,每个数据库都有自己的一组关键字和数据类型。所有数据库都没有单一语法。 –

+0

@Sudipta我明白这一点。我正在努力改变实现,以便根据使用的数据库选择查询。我现在面临的问题是我需要在DB2,MSSQL和Oracle的单个查询中实现“仅在存在Else Truncate时创建表”。你有什么建议吗? – Ashutosh