永发信息网

如何获取sqlservere数据库表的约束条件

答案:1  悬赏:50  手机版
解决时间 2021-03-31 04:26
如何获取sqlservere数据库表的约束条件
最佳答案
microsoft sql server management studio中展开对应表下面的列信息不就可以看到列的详细信息了么?当然这是可以的,但这里我们主要讲的时如何利用sql语句来查询指定表的列信息。

利用sql语句来查询列信息,就是要用到系统视图sys.columns,这个视图记录了数据库中所有表,视图,表值函数等的所有列信息。我们可以利用语句select * from sys.columns来查看这个视图返回的信息。
sys.columns返回的列比较多,大部分情况下很多列的信息我们可能用不到,下面我们只解释一下比较常用的列的信息。

1,object_id--这个列是比较重要的,它是返回当前列所属表的ID。利用它,我们就可以查询指定表的所有列信息,比如下面的sql语句是查询表table1的所有列信息。

select * from sys.columns where object_id=object_id('table1')

2,name--该列的列名。
3,column_id--该列在数据库中的ID,注意,数据库中任何对象的ID都是唯一的。
4,system_type_id--该列的类型的ID,和下面max_length,precision,scale三列一起可以来举个示例。
5,max_length--该列的最大长度
6,precisionp--如果这列是数值列,那么这是该列的精度,否则就是0
7,scale--如果这列是数值列,那么这就是列的小数位数,否则就是0

system_type_id,max_length,precision,scale四列结合系统视图sys.types一起我们来举个示例。
如果我们要查询表table1的所有列,及列的类型,列的精度,列的小数位数,sql语句如下:

select a.name,b.name,a.max_length,a.precision,a.scale
from sys.columns a left join sys.types b on a.user_type_id=b.user_type_id
where a.object_id=object_id('table1')

8,is_nullable--该列是否可以为null
9,is_identity--该列是否是标识列
10,is_computed--该列是否是计算列。利用该列,我们也就可以查询某个表的所有计算列了,比如我们要查询表table1中的所有计算列,sql语句如下:

select * from sys.columns where object_id=object_id('table1') and is_computed=1

sys.columns视图中常用的列就是这10列了,其它列的信息大家可以到SQLServer 2005联机丛书中查询。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
北京市奶子房中学地址在什么地方,我要处理点
fx-991es plus怎么算微积分
华达激光数码冲印中心地址在什么地方,我要处
有一部日漫女主叫木下什么的
男方怎么相亲容易成功
一口气看完了镇魂6集,太好看了吧,镇魂女孩
好吧,那你上班吧,不打扰你了,用奥语怎么说
极品好儿媳妇txt
大家觉得Z5能量裤怎样?
各位师傅,b772三极管是40V3A10W pnp三极能否
老公姓徐我姓童给孩子取名字时希望里面有我们
梁挺福:什么是未来好就业的新工科专业
一龙是几公斤拳击手
大家感觉那个美颜相机最好苹果的还有你们都用
tcl执法记录仪设备编号怎样查找
推荐资讯
"这句话中用津津乐道这个成语正确吗
去年我因为投资失败,所以我跟女朋友提出了分
他这个人很实在的 日语怎么说啊?
汽车配件制造行业中,一个新机种的开发过程中
关于拳霸2的结局和续集?
天蓝蓝地蓝蓝是哪首歌的歌词
马驹桥服务区左边去右边服务区骑自行车有近道
72.2mbps的网速快吗
形容江南古时吴人说话好听的成语
如图所示.灯泡用久之后.玻璃泡内壁要变黑,
什么是单管双向交通
扬州远洋航务有限公司好不好拜托各位大神
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?