sql-server – 在哪里可以找到列数据类型的Sql Server元数据?

前端之家收集整理的这篇文章主要介绍了sql-server – 在哪里可以找到列数据类型的Sql Server元数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道我可以通过以下方式访问列属性
select * 
from sysobjects

然而,我找不到关于在哪里获取列的类型和类型长度的信息,即:in

FOO VARCHAR(80)

我在哪里可以找到元数据表中类型声明的“VARCHAR(80)”部分?

我尝试查看systypes表,但是xtype的值与sysobjects表中xtype的值不匹配.

*我无法访问用于构建这些表的原始sql,也没有任何管理员权限.

如果您熟悉DB2,我正在寻找相当于

select name,coltype,length,from sysibm.syscolumns
where tbname = 'FOO'

解决方法

你很近您可以查看sys.columns来获取列.

您可以使用OBJECT_ID = OBJECT_ID(‘dbo.Foo’)对表进行过滤.

您可以从sys.columns获取长度.数据类型在system_type字段中.该字段的键位于sys.types中.

你可以做的全部:

select object_NAME(c.object_id),c.name,t.name,c.max_length
from sys.columns c
INNER JOIN sys.types t
    ON t.system_type_id = c.system_type_id

另外,在sql Server中,不建议使用系统表(即syscolumns,sysobjects),建议将其替换为sys.columns,sys.objects等最佳做法.

这将为您提供每个表的Table,列,数据类型和maxlength.

猜你在找的MsSQL相关文章