SqlServer如何查询表的列数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer如何查询表的列数相关的知识,希望对你有一定的参考价值。

select count(name) from syscolumns
where id=( select id from sysobjects where name='表名' and xtype='U')
说明:select id from sysobjects where name='表名' and xtype='U' 从sysobjects 里查询表类型为U(非系统)的表的id ,假设查到的是 1002 ;
select count(name) from syscolumns where id=1002 查的是系统列syscolumns 里表id是1002的列数。
你可以随便建个表,然后分步运行这两句看看
参考技术A select count(*) from sysobjects a join syscolumns b
on a.id=b.id
where a.name='表名'本回答被提问者和网友采纳
参考技术B select a.name as tablename,COUNT(1) as columncount from sysobjects a join syscolumns b
on a.id=b.id
where a.type='u' group by a.name
参考技术C select o.name [表名称],c.name [列名称],* from sys.all_columns c left join sys.all_objects o on c.object_id=o.object_id
where o.type_desc like 'USER_TABLE'
参考技术D select count(*) from 数据表名称;

SqlServer联合查询UNION

基本的原则:每个结果集必须有相同的列数;每个结果集的列必须类型相容。

SELECT FName FROM T_Employee UNION  

SELECT FName FROM T_TempEmployee

1


SELECT FName FROM T_Employee

 UNION ALL

 SELECT FName FROM T_TempEmployee 

注意:UNION合并两个查询结果集,并且将其中完全重复的数据行合并为一条,Union因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,那么就用UNION ALL


以上是关于SqlServer如何查询表的列数的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL - 如何计算动态查询返回的列数[重复]

SqlServer联合查询UNION

SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

SqlServer知识总结

为啥它说在 sql 查询中选择的列数错误?

返回的列数会影响查询的速度吗?