在SQL Server Management Studio中创建临时表时出现问题
我正在尝试从两个表的联接创建一个表,以便在数据之间切换。但是我在上得到了一个语法错误,如果我删除了我,并且只做我在select命令上得到语法错误的事情在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
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;