我有以下查询:

IF NOT EXISTS (SELECT 1
               FROM   sysobjects
               WHERE  id = Object_id('tempdb..TEMP_THETH_DETAILS'))
  EXECUTE (
'CREATE TABLE tempdb..TEMP_THETH_DETAILS( THETH_ID NUMERIC(5) NOT NULL, LANGUAGE VARCHAR(3) DEFAULT ''EN'' NOT NULL)'
)

GO

问题是检查,如果不存在,似乎tempdb不考虑,可能是因为表是在tempdb中创建的。所以我的问题是有没有办法检查临时表是否存在?

最佳答案

试试这个:


IF object_id('tempdb..TEMP_THETH_DETAILS') is null
begin
   EXECUTE
   (
       'CREATE TABLE tempdb..TEMP_THETH_DETAILS
        ( THETH_ID NUMERIC(5) NOT NULL,
          LANGUAGE VARCHAR(3) DEFAULT ''EN'' NOT NULL
        )'
    )
end
go

10-07 22:08