加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:47:15 所属栏目:MsSql教程 来源:网络整理
导读:我知道我可以通过以下方式访问列属性: select * from sysobjects 然而,我找不到关于在哪里获取列的类型和类型长度的信息,即:in FOO VARCHAR(80) 我在哪里可以找到元数据表中类型声明的“VARCHAR(80)”部分? 我尝试查看systypes表,但是xtype的值与sysobject
我知道我可以通过以下方式访问列属性:
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读