Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server Management Studio中创建临时表时出现问题_Sql_Sql Server_Ddl - Fatal编程技术网

在SQL Server Management Studio中创建临时表时出现问题

在SQL Server Management Studio中创建临时表时出现问题,sql,sql-server,ddl,Sql,Sql Server,Ddl,我正在尝试从两个表的联接创建一个表,以便在数据之间切换。但是我在上得到了一个语法错误,如果我删除了我,并且只做我在select命令上得到语法错误的事情 CREATE TABLE Neigh AS (SELECT * FROM COR_NEIGBORHOODS_N1 A1 LEFT JOIN NEIG_RAMAT_GAN_SHCONOT B1 ON A1.Settle_Name = B1.City_Name

我正在尝试从两个表的联接创建一个表,以便在数据之间切换。但是我在上得到了一个语法错误,如果我删除了我,并且只做我在select命令上得到语法错误的事情

CREATE TABLE Neigh 
AS 
    (SELECT *
     FROM COR_NEIGBORHOODS_N1 A1 
     LEFT JOIN NEIG_RAMAT_GAN_SHCONOT B1 ON A1.Settle_Name = B1.City_Name 
                                         AND A1.NEIGHBORHOODs_AREA_FNAME = B1.name
     WHERE B1.City_Name IS Null AND A1.Settle_Code = 8600)

有人知道问题出在哪里吗?

SQL Server不支持将表创建为。相反,它将语法用于。因此:

使用select*是危险的,因为列名可能重复。我建议您具体列出这些列

请注意,我还将表别名从无意义的字母改为表名的缩写。

创建表名为选择列名为列1,Column\u name作为Column 2从COR\u NEIGBORHOODS\u N1 CN左连接NEIG\u RAMAT\u GAN\u SHCONOT NRG ON CN.Settle\u name=NRG.City\u name和CN.NEIGHBORHOODs\u AREA\u FNAME=NRG.name,其中NRG.City\u name为空,CN.Settle\u Code=8600


请将“AS”用于与我在上述查询中使用的表相同的列别名。

好,因此我使用了此语法,一切正常,但问题是,正如您所说,表中有两列名称相同。无法更改此列名,因为它是由ArcGIS pro设置的地理数据列。所以我无法运行Gordon已经指出的语法,使用*作为选择列表是个问题。现在是你的懒惰。一个表不能有多个同名列,因此请指定所需的列。更好的是,为什么需要创建一个表呢?
select *
into Neigh
from COR_NEIGBORHOODS_N1 n left join
     NEIG_RAMAT_GAN_SHCONOT nrg
     on n.Settle_Name = nrg.City_Name and
        n.NEIGHBORHOODs_AREA_FNAME = nrg.name
WHERE nrg.City_Name IS Null and n.Settle_Code = 8600;