2017-09-01 85 views
0

如下所示使用的SQL語句在以前的版本,但沒有在SQL Server 2014:無法找到臨時表,如果在SQL Server退出2014

嘗試#1:

IF object_id('[#TemptableName]') IS NOT NULL 
    SELECT * FROM #TemptableName 
ELSE 
    PRINT 'NOT FOUND' 
GO 

嘗試# 2:

IF OBJECT_ID (N'#TemptableName', N'U') IS NOT NULL 
    SELECT * FROM #TemptableName 
ELSE 
    PRINT 'NOT FOUND' 

我發現這個奇怪 - 任何想法?

+1

當指定臨時表名,數據庫名稱必須出現在臨時表名之前,除非當前數據庫爲tempdb中。例如:SELECT OBJECT_ID('tempdb ..#mytemptable')。 – TheGameiswar

+1

我覺得奇怪的是,你沒有解釋爲什麼它不起作用。錯誤或意外的結果? –

+0

臨時表存儲在tempdb.sys.tables中。請檢查這張表 – Prafulla

回答

1

嘗試像這樣...

IF OBJECT_ID('tempdb..#TemptableName', 'U') IS NOT NULL 
0
IF OBJECT_ID('tempdb..#TemptableName') IS NOT NULL 
    SELECT * FROM #TemptableName 
ELSE 
    PRINT 'NOT FOUND' 
GO