[英]Truncate temp table Vs Drop temp table Sql Server
有两种方法可以检查temp table
的存在并重新创建它
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
表, 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);
输出:
╔═════╗
║ col ║
╠═════╣
║ 1 ║
╚═════╝
如果有一个名为temp
drop的表。 然后重新创建它。
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);
输出:
╔════╗
║ id ║
╠════╣
║ 1 ║
╚════╝
如果表不存在,则两个方法都返回相同的结构:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.