如何在SQL Server中创建临时表
正如其名称所示,临时表用于临时存储数据,它们可以执行CRUD(创建、读取、更新和删除)、连接和一些其他操作,如持久数据库表。当创建表的会话关闭时,将删除临时表,或者用户也可以显式删除临时表。同时,临时表可以在许多方面与物理表类似,这给了我们更多的灵活性。例如,我们可以在这些表中创建约束、索引或统计信息。SQL Server根据其范围提供了两种类型的临时表:本地临时表和全局临时表。以下是在SQL Server中创建临时表的两种方法:一、SELECT INTO
现在利用 SELECT INTO 来创建临时表#products_temp_table:
如你所见,表中当前有3行价格大于300:可以使用drop table删除临时表:
让我们使用第二种CREATE TABLE方法重新创建临时表:
在这两种方法中,必须在临时表名称之前包含哈希符号(#)。你可以使用drop table查询删除临时表(或者只需关闭用于创建临时表的连接):
SELECT column_1, column_2, column_3,... INTO #name_of_temp_tableFROM table_nameWHERE condition以下是示例产品数据:
现在利用 SELECT INTO 来创建临时表#products_temp_table:
SELECT product_id, product_name, price INTO #products_temp_tableFROM productsWHERE price 300运行查询后,你会注意到有3行受到影响:你可以通过运行以下SELECT查询来检查临时表的内容:
SELECT * FROM #products_temp_table
如你所见,表中当前有3行价格大于300:可以使用drop table删除临时表:
DROP TABLE #products_temp_table删除表后,尝试再次运行SELECT查询:
SELECT * FROM #products_temp_table请注意,该表已不存在:二、CREATE TABLE
CREATE TABLE #name_of_temp_table (column_1 datatype,column_2 datatype,column_3 datatype,..注意,在此方法下创建表后,需要使用insert into查询将记录插入表中:
column_n datatype)
INSERT INTO #name_of_temp_table (column_1, column_2, column_3,...) SELECT column_1, column_2, column_3,...FROM table_nameWHERE condition
让我们使用第二种CREATE TABLE方法重新创建临时表:
CREATE TABLE #products_temp_table ( product_id int primary key, product_name nvarchar(50), price int)创建临时表后,需要使用insert into查询将记录插入表中:
INSERT INTO #products_temp_table (product_id, product_name, price) SELECT product_id, product_name, priceFROM productsWHERE price 300你将注意到3条记录受到影响:重新运行SELECT查询以检查表的内容:
SELECT * FROM #products_temp_table如你所见,有3条记录的价格高于300:要删除表格,请使用:
DROP TABLE #products_temp_table
在这两种方法中,必须在临时表名称之前包含哈希符号(#)。你可以使用drop table查询删除临时表(或者只需关闭用于创建临时表的连接):
DROP TABLE #name_of_temp_table
0条评论