有什么好处吗
有两种方法可以检查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
的表,则会创建新表。
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