我知道我可以使用SELECT * INTO语句来创建临时表.
但是,有没有办法只使用SELECT语句创建临时表?
假设我有一些SQL SELECT * FROM Customers,是否可以编写如下的查询来创建临时表?
CREATE TABLE #Temp as (SELECT * FROM Customers)
Run Code Online (Sandbox Code Playgroud)
简单的答案是:不,你不能做你在问题中所写的内容.
您可以通过两种方式创建和填充临时表\ table变量:
使用SELECT INTO:
SELECT *
INTO #TEMP
FROM Customers
WHERE 1=2 -- no matches will create an empty table
Run Code Online (Sandbox Code Playgroud)
这将从源表中获取列和数据类型,并基于它们创建临时表.
将表格预先定义为变量或临时表:
-- table variable
DECLARE @Temp TABLE (Col1 int, Col2 int...);
-- or a temp table
CREATE TABLE #Temp (Col1 int, Col2 int...)
INSERT INTO @tmp (Col1, Col2...)
SELECT Col1, Col2...
FROM Customers
Run Code Online (Sandbox Code Playgroud)
有了这个,你必须预先定义表列和类型.
| 归档时间: |
|
| 查看次数: |
11739 次 |
| 最近记录: |