将SQL SERVER中所有表的列信息显示出来

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 将SQL SERVER中所有表的列信息显示出来     正在作一个关于SQL SERVER数据库导入Excel文件的程序,要读取数据库中的列的信息,从网上找了很多资料,终于总结出来比较理想的sql语句,执行后返回的列分别是:表名、列名、列类型、列长度、列描述、是否主键,语句如下:   SELECT SysObjects.

将SQL SERVER中所有表的列信息显示出来  
  
 正在作一个关于SQL SERVER数据库导入Excel文件的程序,要读取数据库中的列的信息,从网上找了很多资料,终于总结出来比较理想的sql语句,执行后返回的列分别是:表名、列名、列类型、列长度、列描述、是否主键,语句如下:

 

img_a6339ee3e57d1d52bc7d02b338e15a60.gif SELECT  SysObjects.Name  as  tb_name, SysColumns.Name  as   col_name , SysTypes.Name  as  col_type, SysColumns.Length  as  col_len,  isnull (SysProperties.Value,SysColumns.Name)  as  col_memo,
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
case   when  SysColumns.name  in  
img_a6339ee3e57d1d52bc7d02b338e15a60.gif(
select  主键 = a.name
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
FROM  syscolumns a
img_a6339ee3e57d1d52bc7d02b338e15a60.gif 
inner   join  sysobjects b  on  a.id = b.id    and  b.xtype = ' U '   and   b.name <> ' dtproperties '
img_a6339ee3e57d1d52bc7d02b338e15a60.gif 
where     exists ( SELECT   1   FROM  sysobjects  where  xtype = ' PK '   and  name  in  (
img_a6339ee3e57d1d52bc7d02b338e15a60.gif  
SELECT  name  FROM  sysindexes  WHERE  indid  in (
img_a6339ee3e57d1d52bc7d02b338e15a60.gif   
SELECT  indid  FROM  sysindexkeys  WHERE  id  =  a.id  AND  colid = a.colid
img_a6339ee3e57d1d52bc7d02b338e15a60.gif  ))) 
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
and   b.name = SysObjects.Name 
img_a6339ee3e57d1d52bc7d02b338e15a60.gif)
img_a6339ee3e57d1d52bc7d02b338e15a60.gif 
then   1   else   0   end   as  is_key
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif 
FROM  SysObjects,SysTypes,SysColumns 
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
LEFT   JOIN  SysProperties  ON  (Syscolumns.Id  =  Sysproperties.Id  AND
img_a6339ee3e57d1d52bc7d02b338e15a60.gif Syscolumns.Colid 
=  Sysproperties.Smallid)
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif 
WHERE  (Sysobjects.Xtype  = ' u '   OR  Sysobjects.Xtype  = ' v '
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
AND  Sysobjects.Id  =  Syscolumns.Id  AND  SysTypes.XType  =  Syscolumns.XType 
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
AND  SysTypes.Name  <>   ' sysname '   AND  Sysobjects.Name  Like   ' % '   ORDER   By  SysObjects.Name, SysColumns.colid 
img_a6339ee3e57d1d52bc7d02b338e15a60.gif


如果只想操作一个表的,那么把最后的%换成表名就可以了。


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
2月前
|
XML SQL 数据格式
XML动态sql查询当前时间之前的信息报错
XML动态sql查询当前时间之前的信息报错
46 2
|
15天前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
26 1
|
2月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
17天前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
2月前
|
SQL 流计算
Flink SQL 在快手实践问题之由于meta信息变化导致的state向前兼容问题如何解决
Flink SQL 在快手实践问题之由于meta信息变化导致的state向前兼容问题如何解决
39 1
|
2月前
|
SQL JSON Go
Go - 基于 GORM 获取当前请求所执行的 SQL 信息
Go - 基于 GORM 获取当前请求所执行的 SQL 信息
43 3
|
3月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
71 13
|
3月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
3月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
51 6
|
3月前
|
SQL 监控 关系型数据库
PolarDB产品使用问题之SQL防火墙怎么拦截没有指定WHERE条件的特定表的SQL语
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。