SQL Server 如何用sql语句查询数据库表对象语句

对于很多数据库爱好者来说,不断深入研究数据库的结构是件十分有意思的事情,笔者无聊时玩了一下,仅供大家参考。

sqlserver 版本是2012的。
对于查询数据库中的表使用的sql语句有很多中写法,笔者大多数都是结合sql server自带的监听工具"sql server profile"的使用,打开监听后,再在数据库进行想要的操作后,返回到监听工具界面,如下图。

在这里插入图片描述
通过查询可以查询的相关的sql语句和函数的使用方法。

以下语句就是使用这种方法得到的,描述数据库中含有的表名、字段、数据类型、说明等信息,希望对大家有用。

select distinct acol.name tabname,col.name colname, col.column_id,
case when st.name=‘numeric’ then ‘numeric(’+cast(col.max_length as varchar(3)) + ‘,’+ cast(col.scale as varchar(3))+’)’
when st.name=‘varchar’ then ‘varchar(’+cast(col.max_length as varchar(3)) +’)’ when st.name=‘nvarchar’ then ‘nvarchar(’+cast(col.max_length as varchar(3))+’)’
when st.name=‘char’ then ‘char(’+cast(col.max_length as varchar(3)) +’)’ else st.name end ColumnType,
case when col.is_nullable=1 then ‘Y’ else ‘N’ end IsNullAble,ep.value AS column_description
from sys.columns col
left outer join (select a.object_id,b.name from sys.all_columns a,sys.tables b where a.object_id =b.object_id ) acol on col.object_id = acol.object_id
left outer join sys.types st on st.user_type_id = col.user_type_id
left outer join sys.types bt on bt.user_type_id = col.system_type_id
left outer join sys.extended_properties ep ON ep.major_id = col.object_id AND ep.minor_id = col.column_id
where acol.name is not null
order by acol.name,col.column_id
在sql 查询分析器中选择一个数据库后,执行该语句,即可得到如下图结果:
在这里插入图片描述

当然,如果还需要其他信息的,比如外键等等,大家可以试着调整sql来玩一下!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值