3
我創建了一個表,如下得到臨時表的對象ID:如何使用OBJECT_ID函數
create table #tab
(
id int
)
現在,我想要得到的表的對象ID。
我試圖在同一會話:
select object_id("#tab")
和
select object_id("tempdb..#tab")
但都返回null
。
我創建了一個表,如下得到臨時表的對象ID:如何使用OBJECT_ID函數
create table #tab
(
id int
)
現在,我想要得到的表的對象ID。
我試圖在同一會話:
select object_id("#tab")
和
select object_id("tempdb..#tab")
但都返回null
。
簡短的回答...在智商這是不可能的。長時間的回答...你有一些相當不錯的選擇,有些不是很好的選擇。
改寫舊WATCOM SQL的整個過程中,捕獲錯誤如果操作刪除表失敗...
使用永久表(沒有有效的智商2之間的差異遠據我所知)
得到時髦...並使用奇怪的IQ行爲!如果你在一個事務之外創建一個臨時表,然後檢查@@ trancount ...你會得到你想要的0。如果你然後打開交易...並檢查@@ trancount你會得到2.所以...認爲,一個成功的臨時表創建:)
只是假設它不存在於您的連接:)
的Sybase ASA SQL代碼列表: http://manuals.sybase.com/onlinebooks/group-sas/awg0800e/dberen8/@Generic__BookTextView/334;pt=334#X
實施例#1:
DROP PROCEDURE foo;
go
create procedure foo()
begin
DECLARE DROP_TABLE_FAILED EXCEPTION FOR SQLSTATE '42W33';
BEGIN
DROP TABLE T1;
EXCEPTION
WHEN DROP_TABLE_FAILED
THEN
WHEN OTHERS THEN RESIGNAL;
END;
CREATE LOCAL TEMPORARY TABLE t1 (c1 int)
on commit preserve rows;
insert into t1 select 1;
select * from t1;
END;
go
exec foo
go
exec foo
go
drop table t1;
go
'的object_id( 「tempdb中..#標籤」)'?適用於MS SQL Server。 –
@MartinSmith謝謝,但它不適用於iq。 – Parado