码迷,mamicode.com
首页 > 其他好文 > 详细

syscolumns、sysconstraints、sysobjects

时间:2015-07-17 22:20:51      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

 1、根据表名查询对象ID

SELECT OBJECT_ID(Production.Product)

 结果:1429580131

不能作为输入参数:列名、约束名

能作为输入参数:表名

2、根据对象ID查询表名

SELECT OBJECT_NAME(1429580131)

结果:Product

一、syscolumns

1.根据表名查询表的所有列的名称

SELECT  name
FROM    syscolumns
WHERE   id = OBJECT_ID(Production.Product)

syscolumns 为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。

syscolumns.id        列所属的表的对象ID、int型

syscolumns.name   列的名称、sysname型

2.根据表名、列名,查询列ID

SELECT  colid
FROM    syscolumns
WHERE   id = OBJECT_ID(Production.Product)
        AND name = ProductNumber

syscolumns.colid   列ID (列从1开始编号)、smallint型

syscolumns.name (似乎可以用字符串作为输入)

二、sysconstraints

 包含的主要列:约束ID(constid),约束所属表的对象ID(id),约束所在列的列ID(colid)

三、sysobjects 

1、根据表名和列名查询列上的约束

SELECT  sysobjects.name ,sysobjects.xtype,
        sysobjects.id
FROM    sysobjects
        JOIN sysconstraints ON sysobjects.id = sysconstraints.constid
WHERE   sysobjects.parent_obj = OBJECT_ID(Production.Product)
        AND sysconstraints.colid IN (
        SELECT  colid
        FROM    syscolumns
        WHERE   id = OBJECT_ID(Production.Product)
                AND name = Weight )

sysobjects.parent_obj   父对象的对象标识号。 例如,表ID(如果它是触发器或约束,父对象就是表ID)。

sysobjects.xtype:

C   = check约束

D   = 默认值或DEFAULT约束

F    = FOREIGN KEY约束

P    = 存储过程

PK  = PRIMARY KEY

UQ = UNIQUE

 

syscolumns、sysconstraints、sysobjects

标签:

原文地址:http://www.cnblogs.com/niaomingjian/p/4655620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!