gpt4 book ai didi

sql - 截断临时表与删除临时表 Sql Server

转载 作者:行者123 更新时间:2023-12-03 03:44:53 25 4
gpt4 key购买 nike

有两种方法可以检查临时表是否存在并重新创建

1.

IF Object_id('TEMPDB..#temp') IS NOT NULL
TRUNCATE TABLE #temp
ELSE
CREATE TABLE #temp
(
id INT
)

2.

IF Object_id('TEMPDB..#temp') IS NOT NULL
DROP TABLE #temp

CREATE TABLE #temp
(
id INT
)

使用其中一种比另一种有什么优势

最佳答案

如果有名为temp的表TRUNCATE,否则创建新表。

IF Object_id('temp') IS NOT NULL
TRUNCATE TABLE temp
ELSE
CREATE TABLE temp
(
id INT
);

原始表的架构可能与 ELSE 语句中的架构不同,您将以错误的结构结束。

CREATE TABLE temp(col VARCHAR(100));
INSERT INTO temp VALUES ('a');

IF Object_id('temp') IS NOT NULL
TRUNCATE TABLE temp
ELSE
CREATE TABLE temp
(
id INT
);

INSERT INTO temp VALUES (1);

SqlFiddleDemo

输出:

╔═════╗
║ col ║
╠═════╣
║ 1 ║
╚═════╝
<小时/>

如果有名为 temp 的表,请将其删除。然后重新创建它。

IF Object_id('TEMPDB..#temp') IS NOT NULL
DROP TABLE #temp

CREATE TABLE #temp
(
id INT
);

在此示例中,您始终确保获得 CREATE 语句中定义的结构。

CREATE TABLE temp(col VARCHAR(100));
INSERT INTO temp VALUES ('a');

IF Object_id('temp') IS NOT NULL
DROP TABLE temp

CREATE TABLE temp
(
id INT
)

INSERT INTO temp
VALUES (1);

SqlFiddleDemo2

输出:

╔════╗
║ id ║
╠════╣
║ 1 ║
╚════╝
<小时/>

如果表不存在,两种方法都会返回相同的结构:

SqlFiddleDemo_3 <强> SqlFiddleDemo_4

关于sql - 截断临时表与删除临时表 Sql Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32043794/

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