了解 INSERT INTO 与 SELECT INTO 的区别
|
admin
2024年12月28日 21:5
本文热度 1443
|
前言
临时表是用来暂时保存临时数据(中间数据) 的一个数据库对象, 它与普通表有些类似, 但又有很大区别。而在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,TokenFROM Users
-- 3、 查询数据SELECT * FROM #UserTemp
-- 删除临时表DROP TABLE #UserTemp
2、SELECT INTO
SELECT INTO动态创建新表,并同时将数据插入表中,因此使用该方法前不需要提前创建表结构。
下面是使用语法:
-- tablename 数据插入的表-- sourceTable 数据来源的表SELECT Column1, Column2,...INTO tablenameFROM sourceTable
-- 1、创建临时表,并往临时表插入数据SELECT UserId,UserName, Email,TokenINTO #UserinfoFROM Users-- 2、查询数据SELECT * FROM #Userinfo
差异
1、区别
2、使用场景
INSERT INTO更适合临时表是因为可以利用元数据缓存、可以避免更改表结构,导致元数据缓存失效、在并中重用缓存元数据以提高性能。
小结
以上简单地探讨INSERT INTO与SELECT INTO内容及其差异,了解并知道何时使用它们,可以使我们在不同的场景中选择较好的方式。
阅读原文:原文链接
该文章在 2024/12/30 15:15:43 编辑过