无法在SYBASE ASE 15.7.0中创建GLOBAL TEMPORARY

时间:2016-01-29 12:07:38

标签: tsql sybase-ase

USE XXX
go
CREATE GLOBAL TEMPORARY  TABLE #dbo.tbl_gbl_temp11
(parent_deal_id numeric(10,0) not null,
  deal_id numeric(10,0) not null,
  code_name varchar(100) null
)
go
IF OBJECT_ID('dbo.tbl_gbl_temp1') IS NOT NULL
    PRINT '<<< CREATED TABLE dbo.tbl_gbl_temp1 >>>'
ELSE
    PRINT '<<< FAILED CREATING TABLE dbo.tbl_gbl_temp1 >>>'
go

当我执行上述操作时,它会出现以下错误:

  

Number(156)Severity(15)State(2)Server(XXX)关键字'TABLE'附近的语法不正确。

2 个答案:

答案 0 :(得分:0)

Sybase ASE中没有CREATE GLOBAL TEMPORARY TABLE命令。

SAP ASE 16.0 SP2支持CREATE GLOBAL TEMPORARY TABLE

对于临时表,通过指定#

,使用标准的create table语法,以及以tempdb..tbl_name或全局临时表为前缀的本地临时表

所以在你的情况下,它将是

USE XXX
go
CREATE TABLE tempdb..tbl_gbl_temp11   //if the owner is dbo it does not need to be listed.
(parent_deal_id numeric(10,0) not null,
  deal_id numeric(10,0) not null,
  code_name varchar(100) null
)
go

IF OBJECT_ID('tempdb..tbl_gbl_temp1') IS NOT NULL
    PRINT '<<< CREATED TABLE dbo.tbl_gbl_temp1 >>>'
ELSE
    PRINT '<<< FAILED CREATING TABLE tempdb..tbl_gbl_temp1 >>>'
go

Sybase ASE Transact SQL Reference Guide: Temporary Tables

数据将在进程之间共享,因此您可能需要添加spid或其他标识符,以确保在清理用户/会话数据时不会截断其他进程数据。

答案 1 :(得分:0)

ASE 16.0 SP02支持CREATE GLOBAL TEMPORARY TABLE。