gpt4 book ai didi

sql - 如何使用 object_id 函数从临时表中获取对象 ID

转载 作者:行者123 更新时间:2023-12-02 00:15:06 25 4
gpt4 key购买 nike

我创建了一个表格如下:

create table #tab
(
id int
)

现在,我想获取表的对象 ID。

我在同一个 session 中尝试过:

select object_id( "#tab" ) 

select object_id( "tempdb..#tab" )

但两者都返回 null

最佳答案

简答...在 IQ 上这是不可能的。长答案......你有一些相当不错的选择和一些不太好的选择。

  1. 在旧的 watcom SQL 中重写整个过程,如果删除表的操作失败则捕获错误...

  2. 使用永久表(据我所知两者在IQ上没有有效区别)

  3. 变得时髦……并使用奇怪的 IQ 行为!如果您在事务外创建一个临时表,然后检查@@trancount...您将如预期的那样得到 0。如果您随后打开一个事务...并检查@@trancount,您将得到 2。所以...认为临时表创建成功:)

  4. 假设它在您的连接中不存在:)

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

关于sql - 如何使用 object_id 函数从临时表中获取对象 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13607796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com