syscolumns、sysconstraints、sysobjects

 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

 四、后续版本的 Microsoft SQL Server 将删除这些功能。使用最新的 SQL Server 系统视图来代替。

转载于:https://www.cnblogs.com/niaomingjian/p/4655620.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值