zoukankan      html  css  js  c++  java
  • 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 系统视图来代替。

  • 相关阅读:
    ThroughRain第一次冲刺个人总结
    【操作系统】实验四 主存空间的分配和回收
    学习回顾与总结
    关于学术诚信与职业道德的承诺
    sprint个人总结+读书博客
    实验三 进程调度模拟程序
    团队项目3.0
    软件改进
    团队项目项目:二次开发
    作业调度
  • 原文地址:https://www.cnblogs.com/niaomingjian/p/4655620.html
Copyright © 2011-2022 走看看