了解 INSERT INTO 与 SELECT INTO 的区别
|
admin
2024年12月28日 21:5
本文热度 30
|
前言
临时表是用来暂时保存临时数据(中间数据) 的一个数据库对象, 它与普通表有些类似, 但又有很大区别。而在SQL Server中,使用INSERT INTO和SELECT INTO来填充表数据时,我们应该选择哪种方式会更好。本文将探讨这两种方法之间的差异、它们对临时表的影响。
语法
1、INSERT INTO
INSERT INTO用于将数据插入到现有表中,因此使用该方法前需要提前创建表结构。在创建表时,可以定义表的约束、索引和键等。此方法可以控制表的结构,并确保所有必要的元数据(如约束或索引)都是预定义的。
下面是使用语法:
-- tablename 数据插入的表
-- sourceTable 数据来源的表
INSERT INTO tablename (Column1, Column2,...)
SELECT Column1, Column2, ...
FROM sourceTable
-- 1、创建临时表
CREATE TABLE #UserTemp (
Id INT PRIMARY KEY,
UserName NVARCHAR(100),
Email NVARCHAR(200),
Token NVARCHAR(500)
)
-- 2、往临时表插入数据
INSERT INTO #UserTemp (Id, UserName, Email,Token)
SELECT UserId,UserName, Email,Token
FROM Users
-- 3、 查询数据
SELECT * FROM #UserTemp
-- 删除临时表
DROP TABLE #UserTemp
2、SELECT INTO
SELECT INTO动态创建新表,并同时将数据插入表中,因此使用该方法前不需要提前创建表结构。
下面是使用语法:
-- tablename 数据插入的表
-- sourceTable 数据来源的表
SELECT Column1, Column2,...
INTO tablename
FROM sourceTable
-- 1、创建临时表,并往临时表插入数据
SELECT UserId,UserName, Email,Token
INTO #Userinfo
FROM Users
-- 2、查询数据
SELECT * FROM #Userinfo
差异
1、区别
2、使用场景
INSERT INTO更适合临时表是因为可以利用元数据缓存、可以避免更改表结构,导致元数据缓存失效、在并中重用缓存元数据以提高性能。
小结
以上简单地探讨INSERT INTO与SELECT INTO内容及其差异,了解并知道何时使用它们,可以使我们在不同的场景中选择较好的方式。
阅读原文:原文链接
该文章在 2024/12/30 15:15:43 编辑过