正如您所发现的,SQL Server和Oracle临时表根本不同。
在Oracle中,全局临时表是永久对象,用于存储特定于临时会话(或特定于事务)的数据。
在SQL Server中,临时表是存储临时数据的临时对象,其中#temp_tables存储会话本地数据,而##
temp_tables存储全局数据。(我从不需要SQL
Server全局临时表,也不知道它们解决了什么问题。)如果#temp_table是在存储过程中创建的,则在存储过程退出时将被删除。否则,它将在会话关闭时被删除。
不,确实没有办法使SQL
Server模仿Oracle。您可以将普通表与额外的列一起使用,以存储会话ID。但是就减少日志记录而言,您将无法获得临时表的优势。您必须手动删除临时数据。并处理从过早退出的会话中清除的问题。
编辑: Oracle和SQL Server之间的另一个区别是SQL
Server允许DDL与其他语句包装在事务中。因此,如果需要将临时表用作较大事务的一部分,则该`create table



