gpt4 book ai didi

sql - 数据库名称 'tempdb' 被忽略,引用 tempdb 中的对象

转载 作者:行者123 更新时间:2023-12-02 23:33:36 24 4
gpt4 key购买 nike

不要像这样检查临时表是否存在:

IF OBJECT_ID('tempdb..#table') IS NOT NULL
BEGIN;
DROP TABLE #table;
END;

我正在使用新的DROP IF EXISTS技术:

DROP TABLE IF EXISTS tempdb..#table;

它工作正常,但如果该表不存在,我会收到以下消息。

Database name 'tempdb' ignored, referencing object in tempdb.

有人知道这个消息的原因和含义吗?

最佳答案

在谈论#table时无需指定tempdb - tempdb已经有一个临时表>。我同意该消息令人困惑,但它实际上并不是一个错误 - 它只是一条消息(PRINT)告诉您您做错了什么。无论该消息是否存在,您实际上都会收到该消息;无论它是否存在;例如:

-- drop when doesn't exist
drop table if exists tempdb..#foo

go

-- drop when does exist
create table #foo (id int)
drop table if exists tempdb..#foo

输出消息两次:

Database name 'tempdb' ignored, referencing object in tempdb.
Database name 'tempdb' ignored, referencing object in tempdb.

所以:只需使用:

DROP TABLE IF EXISTS #table;

这就是它希望你做的事情。

关于sql - 数据库名称 'tempdb' 被忽略,引用 tempdb 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222976/

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