如何在SQL SERVER中创建临时表?

3

我正在尝试从另一个表中在SQL Server中创建一个临时表,例如在Redshift中我会执行以下操作

Create temporay table CARS as (
SELECT *
FROM BD_CARS_111
);

SELECT *
FROM CARS;

在 SQL SERVER 中是否有类似的语句?

2
创建表 #Cars。SQL Server没有特殊的语句,而是使用特殊名称来实现。 - Jeroen Mostert
2个回答

6

你可以通过在表名前加#或##来创建临时表。单个#的临时表仅针对连接和会话(即创建它的人)有效。双##的临时表是全局的,其他连接也可以看到和使用。当使用它的所有连接关闭时,后者将消失。

根据你的例子,在MS SQL Server中可以这样做:

SELECT *
into #Cars
FROM BD_CARS_111;

SELECT * FROM #CARS;

谢谢。我能够从一个选择示例中创建一个临时表: code SELECT * into #Cars FROM (SELECT * FROM BD_CARS_111) BD_C; code - dapdap
@dapdap,你不需要写冗余的代码。只需像我在上面的示例中所做的那样编写即可。换句话说:SELECT * into #Cars FROM BD_CARS_111; - Cetin Basoz

1
SELECT
    product_name,
    list_price
INTO #trek_products --- temporary table
FROM
    production.products
WHERE
    brand_id = 9;

SQL Server提供了两种创建临时表的方式,分别是通过SELECT INTO和CREATE TABLE语句。 - Umair Latif
第二种创建临时表的方式是使用 CREATE TABLE 命令。CREATE TABLE #haro_products ( product_name VARCHAR(MAX), list_price DEC(10,2) ); - Umair Latif
1
如果你编辑了你的答案而不是提供解释性评论,那会更好。 - Jonathan Willcock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接