mssql sqlserver sql语句提示“多次为表指定了列*”的处理方法分享


摘要:
下文讲述sql脚本运行时,出现 “多次为表指定了列*”的处理方法,如下所示:
实验环境:sql server 2008 R2


运行sql脚本时,提示以下错误信息”多次为表指定了列*”的错误信息,
经过仔细检查,然后子查询中有两个列名相同的字段,下文将处理方法分享如下:

例:

create table [maomao365A]
(keyId int identity(1,1),
 info  varchar(30)
 )
 go
 create table [maomao365B]
 (keyIdB int identity(1,1),
 info  varchar(30) 
 )
 go
 
---出现错误提示的脚本 
select * from (
 select * from maomao365A a 
  left join maomao365B b on a.keyId = b.keyIdB
)  as t
go

/*
修正后的脚本
在子查询中对表中列进行重命名,
可避免此类异常现象发生,如下所示:
*/ 

select * from (
 select a.*,
   b.keyIdB,b.info as infoB  ---重命名后的列
  from maomao365A a 
  left join maomao365B b on a.keyId = b.keyIdB
)  as t

go
 truncate table [maomao365A]
 drop     table  [maomao365A]
 
 go
 truncate table [maomao365B]
 drop     table  [maomao365B]