Sql 对象或列名丢失或为空。但不是吗?
我正在处理第7组查询,所有查询都在某个表中使用了Sql 对象或列名丢失或为空。但不是吗?,sql,sql-server,sql-insert,Sql,Sql Server,Sql Insert,我正在处理第7组查询,所有查询都在某个表中使用了SELECT*,没有任何问题。由于某些原因,SQL Server中的以下查询引发了错误 对象或列名丢失或为空。选择进入 语句,验证每列是否有名称。对于其他语句,请参见 用于空别名。不允许使用定义为“”或[]的别名。 将别名更改为有效名称 知道会是什么吗? 请注意,在不使用选择进入的情况下运行查询将导致数据按预期返回和显示 Select * into MYDB.MY_TBL SELECT OT.U_ID AS "U_ID" ,R.E AS "
SELECT*
,没有任何问题。由于某些原因,SQL Server中的以下查询引发了错误
对象或列名丢失或为空。选择进入
语句,验证每列是否有名称。对于其他语句,请参见
用于空别名。不允许使用定义为“”或[]的别名。
将别名更改为有效名称
知道会是什么吗?
请注意,在不使用选择进入
的情况下运行查询将导致数据按预期返回和显示
Select * into MYDB.MY_TBL
SELECT OT.U_ID AS "U_ID"
,R.E AS "E"
,R.IR AS "CKT"
,A.RI AS "OC"
,A.EQ AS "SEQ"
,A.HA AS "CHA"
,A.A_HA AS "ATE"
,A.BIL AS "BIL"
,A.CHA AS "CHAA"
,A.RAT AS "AMT"
,A.PRM AS "PREM"
,A.T_CHG AS "RAT"
,A.PER AS "LAS"
,A.S_BIL AS "BIL_A"
,A.CD AS "CDE"
,A.CBIL_J AS "BIL_J"
,A.AMT_D AS "TB"
,A.CRY AS "CTRY"
,A.RVW AS "RVW"
FROM MYDB.OTHER_TBL OT
JOIN [LINKEDSERVER\INST,0000].FE.dbo.tblR R
ON OT.E = R.E
JOIN [LINKEDSERVER\INST,0000].FE.dbo.tblA A
ON R.IR = A.IR
WHERE OT.U_ID = 'TEST'
您有两个
select
s。我想你只是想:
SELECT OT.U_ID AS "U_ID",
. . .
INTO MYDB.MY_TBL
FROM . . .
进入的应遵循选择
列列表
或者,您可以使用子查询,但这似乎不是必需的。在@GordonLinoff示例工作的地方,我意识到我忘记了什么,这是我通常使用的子查询设置
我将提供一个与Gordon方法不同的示例
即:
请注意以下两点:
1.您有两列具有给定的“CHA”别名
2.您似乎需要将查询重写为:
SELECT OT.U_ID AS "U_ID"
,R.E AS "E"
,R.IR AS "CKT"
,A.RI AS "OC"
,A.EQ AS "SEQ"
,A.HA AS "CHA_DUPLICATE"
,A.A_HA AS "ATE"
,A.BIL AS "BIL"
,A.CHA AS "CHA_DUPLICATE2"
,A.RAT AS "AMT"
,A.PRM AS "PREM"
,A.T_CHG AS "RAT"
,A.PER AS "LAS"
,A.S_BIL AS "BIL_A"
,A.CD AS "CDE"
,A.CBIL_J AS "BIL_J"
,A.AMT_D AS "TB"
,A.CRY AS "CTRY"
,A.RVW AS "RVW"
INTO MYDB.MY_TBL -- <<<<<<< NOTE
FROM MYDB.OTHER_TBL OT
JOIN [LINKEDSERVER\INST,0000].FE.dbo.tblR R
ON OT.E = R.E
JOIN [LINKEDSERVER\INST,0000].FE.dbo.tblA A
ON R.IR = A.IR
WHERE OT.U_ID = 'TEST'
选择OT.U\U ID作为“U\U ID”
,R.E为“E”
,R.IR为“CKT”
,A.RI为“OC”
,A.等式为“SEQ”
,A.HA为“chau DUPLICATE”
,A.A_HA AS“ATE”
,A.BIL作为“BIL”
,A.CHA为“CHA_DUPLICATE2”
,A.鼠为“AMT”
,A.PRM为“PREM”
,A.T_CHG为“鼠”
,A.根据“LAS”
,A.S_BIL为“BIL_A”
,A.CD作为“CDE”
,A.CBIL_J为“BIL_J”
,A.金额为“TB”
,A.叫“CTRY”
,A.RVW为“RVW”
进入MYDB.MY_TBL——你知道我完全错过了()子查询设置中的。。。我现在明白了。现在,我只是和它斗争了一个小时,只需要离开再回来。我为我的帖子重新写了名字。请注意,原件中没有重复的名称。问题已经解决,因为我忘记包含我的FROM()
子查询。
SELECT OT.U_ID AS "U_ID"
,R.E AS "E"
,R.IR AS "CKT"
,A.RI AS "OC"
,A.EQ AS "SEQ"
,A.HA AS "CHA_DUPLICATE"
,A.A_HA AS "ATE"
,A.BIL AS "BIL"
,A.CHA AS "CHA_DUPLICATE2"
,A.RAT AS "AMT"
,A.PRM AS "PREM"
,A.T_CHG AS "RAT"
,A.PER AS "LAS"
,A.S_BIL AS "BIL_A"
,A.CD AS "CDE"
,A.CBIL_J AS "BIL_J"
,A.AMT_D AS "TB"
,A.CRY AS "CTRY"
,A.RVW AS "RVW"
INTO MYDB.MY_TBL -- <<<<<<< NOTE
FROM MYDB.OTHER_TBL OT
JOIN [LINKEDSERVER\INST,0000].FE.dbo.tblR R
ON OT.E = R.E
JOIN [LINKEDSERVER\INST,0000].FE.dbo.tblA A
ON R.IR = A.IR
WHERE OT.U_ID = 'TEST'