表a
ID Name Sex
1 小红 女
2. 小刚 男表b
ID score
1 10
2 11select * from (select a.*,b.*,ROW_NUMBER() over (order by b.score asc) as rowrank from a,b where a.id=b.id) as tt where rowrank between 1 and 10这里报错,多次为 'tt' 指定了列 'ID'。大概意思应该是表a的id和表b的id,SqlServer识别不出来了
我知道可以把括号里的a.*,b.*换成 a.id as aid,a.name,a.sex,b.id as bid,b.score
现在的问题是实际工作中表a和表b的列非常多,我不想全罗列出来.是否有其他办法呢,求高手.
ID Name Sex
1 小红 女
2. 小刚 男表b
ID score
1 10
2 11select * from (select a.*,b.*,ROW_NUMBER() over (order by b.score asc) as rowrank from a,b where a.id=b.id) as tt where rowrank between 1 and 10这里报错,多次为 'tt' 指定了列 'ID'。大概意思应该是表a的id和表b的id,SqlServer识别不出来了
我知道可以把括号里的a.*,b.*换成 a.id as aid,a.name,a.sex,b.id as bid,b.score
现在的问题是实际工作中表a和表b的列非常多,我不想全罗列出来.是否有其他办法呢,求高手.
select @s=isnull(@s+',','')+quotename(name) from syscolumns where id=object_id('表名')
print @s字段太多,可以用这个PRINT出来,省得一个个找
不过等你写出来,基本都手写各个字段出来了,可以试试
sp_help '表名'
辅助一下