使用“创建为选择”从旧临时表创建新的临时表

时间:2014-12-12 18:12:06

标签: sql-server-2012

我正在做一些测试,无法从旧临时表创建新的临时表。 这是我的代码。

第一张表

CREATE TABLE #Temp1 ( Col1 Money, Col2 Money );

这很好用。

第二张表

CREATE TABLE #Temp2 
AS (Select Col1, Col2 
From #Temp1)

此错误

  

'('。

附近的语法不正确

我正在关注this链接以了解,其中包含以下代码

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

这与我的几乎相同,除了我的是临时表。

我尝试使用

CREATE TABLE #Temp2 
AS (Select Col1, Col2 
From tempdb..#Temp1)

确保找到临时表的路径

但它给了我

  

忽略数据库名称'tempdb',引用tempdb中的对象。

当两个都是临时表时,有不同的方法吗?

1 个答案:

答案 0 :(得分:2)

CREATE AS语法对SQL Server无效。该网站没有说明哪个RDMBS可能更通用并且适用于其他网站。以下是CREATE TABLE的MSDN页面。

可以使用SELECT语句的INTO子句动态创建表。

如果要复制表(架构数据):

 SELECT *
 INTO #Temp2
 FROM #Temp1

如果您只想创建一个类似的表(仅架构):

 SELECT *
 INTO #Temp2
 FROM #Temp1
 WHERE 1 = 0;