`
wyf
  • 浏览: 436715 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

查询表结构

    博客分类:
  • SQL
阅读更多

查询表中的结构信息

 

 SELECT a.[name] as '字段名',a.length '长度',c.[name] '类型',e.value as '字段说明' FROM syscolumns  a   
left   join    systypes    b   on      a.xusertype=b.xusertype   
left    join    systypes    c   on      a.xtype = c.xusertype   
inner   join   sysobjects  d   on      a.id=d.id     and   d.xtype='U'   
left join sys.extended_properties e on a.id = e.major_id and a.colid = e.minor_id and e.name='MS_Description'  
where d.name='表名'

 二

 

SELECT TOP (100) PERCENT a.name AS zdm,COLUMNPROPERTY(a.id, a.name, 'IsIdentity') AS bs , 
CASE WHEN EXISTS (SELECT 1 FROM dbo.sysindexes si INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id
 AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid 
 INNER JOIN dbo.sysobjects so ON so.name = so.name AND so.xtype = 'PK' WHERE sc.id = a.id AND sc.colid = a.colid) 
 THEN '1' ELSE '0' END AS zj , b.name AS lx, a.length AS cd, COLUMNPROPERTY(a.id, a.name,'PRECISION') 
 AS jd, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS xsws,a.isnullable AS yxk, ISNULL(e.text, '')
  AS mrz, ISNULL(g.value, '') AS zdsm FROM dbo.syscolumns AS a LEFT OUTER JOIN dbo.systypes AS b ON a.xtype = b.xusertype 
  INNER JOIN dbo.sysobjects AS d ON a.id = d.id AND d.xtype = 'U' AND d.status >= 0 LEFT OUTER JOIN
   dbo.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN sys.extended_properties AS g 
   ON a.id = g.major_id AND a.colid = g.minor_id LEFT OUTER JOIN sys.extended_properties 
   AS f ON d.id = f.major_id AND f.minor_id = 0  where d .name='表名'
SELECT 
    TableName=CASE WHEN C.column_id=1 THEN O.name ELSE N'' END,
    TableDesc=ISNULL(CASE WHEN C.column_id=1 THEN PTB.[value] END,N''),
    Column_id=C.column_id,
    ColumnName=C.name,
    PrimaryKey=ISNULL(IDX.PrimaryKey,N''),
    [IDENTITY]=CASE WHEN C.is_identity=1 THEN N'√'ELSE N'' END,
    Computed=CASE WHEN C.is_computed=1 THEN N'√'ELSE N'' END,
    Type=T.name,
    Length=C.max_length,
    Precision=C.precision,
    Scale=C.scale,
    NullAble=CASE WHEN C.is_nullable=1 THEN N'√'ELSE N'' END,
    [Default]=ISNULL(D.definition,N''),
    ColumnDesc=ISNULL(PFD.[value],N''),
    IndexName=ISNULL(IDX.IndexName,N''),
    IndexSort=ISNULL(IDX.Sort,N''),
    Create_Date=O.Create_Date,
    Modify_Date=O.Modify_date
FROM sys.columns C
    INNER JOIN sys.objects O
        ON C.[object_id]=O.[object_id]
            AND O.type='U'
            AND O.is_ms_shipped=0
    INNER JOIN sys.types T
        ON C.user_type_id=T.user_type_id
    LEFT JOIN sys.default_constraints D
        ON C.[object_id]=D.parent_object_id
            AND C.column_id=D.parent_column_id
            AND C.default_object_id=D.[object_id]
    LEFT JOIN sys.extended_properties PFD
        ON PFD.class=1 
            AND C.[object_id]=PFD.major_id 
            AND C.column_id=PFD.minor_id
--             AND PFD.name='Caption'  -- 字段说明对应的描述名称(一个字段可以添加多个不同name的描述)
    LEFT JOIN sys.extended_properties PTB
        ON PTB.class=1 
            AND PTB.minor_id=0 
            AND C.[object_id]=PTB.major_id
--             AND PFD.name='Caption'  -- 表说明对应的描述名称(一个表可以添加多个不同name的描述)

    LEFT JOIN                       -- 索引及主键信息
    (
        SELECT 
            IDXC.[object_id],
            IDXC.column_id,
            Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending')
                WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END,
            PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'√'ELSE N'' END,
            IndexName=IDX.Name
        FROM sys.indexes IDX
        INNER JOIN sys.index_columns IDXC
            ON IDX.[object_id]=IDXC.[object_id]
                AND IDX.index_id=IDXC.index_id
        LEFT JOIN sys.key_constraints KC
            ON IDX.[object_id]=KC.[parent_object_id]
                AND IDX.index_id=KC.unique_index_id
        INNER JOIN  -- 对于一个列包含多个索引的情况,只显示第1个索引信息
        (
            SELECT [object_id], Column_id, index_id=MIN(index_id)
            FROM sys.index_columns
            GROUP BY [object_id], Column_id
        ) IDXCUQ
            ON IDXC.[object_id]=IDXCUQ.[object_id]
                AND IDXC.Column_id=IDXCUQ.Column_id
                AND IDXC.index_id=IDXCUQ.index_id
    ) IDX
        ON C.[object_id]=IDX.[object_id]
            AND C.column_id=IDX.column_id

 WHERE O.name=N'netzpjob'       -- 如果只查询指定表,加上此条件
ORDER BY O.name,C.column_id
分享到:
评论

相关推荐

    查询表结构的sql语句

    下面将详细介绍如何使用T-SQL查询表结构。 1. **使用系统视图INFORMATION_SCHEMA.COLUMNS** `INFORMATION_SCHEMA` 是SQL Server提供的一组系统视图,用于获取关于数据库模式的信息。`COLUMNS` 视图则包含了所有表...

    mysql查询表结构.txt

    可以查询表结构,查询的表头含有:表说明、序号、字段名称、类型、长度、字段说明、索引类型和索引名称。

    sql2005查询表结构

    sql2005数据库查询表结构,单个表和多个表均可以

    BS-CacheTT查询表结构

    "BS-CacheTT查询表结构"是一个专门针对Cache/Ensemble库设计的工具,用于帮助用户查询和操作实体类的字段。Cache是InterSystems公司开发的一款高性能数据库系统,常用于医疗、金融等领域,而Ensemble则是其集成平台...

    oracle表结构查询命令

    在Oracle数据库中,查询表结构是数据库管理员(DBA)及开发人员的一项基本任务。通过查询表结构,我们可以了解到表的基本信息、字段属性以及表的注释等内容。本文将详细介绍Oracle数据库中用于查询表结构的相关命令...

    mysql 查询表结构的2种 sql 语句.docx

    在MySQL数据库管理中,了解如何查询表结构是十分重要的技能之一。这有助于数据库管理员和开发人员更好地理解存储在数据库中的数据格式与结构,从而能够更有效地进行数据操作和管理。本文将详细介绍两种常用的SQL语句...

    sql查询表结构[借鉴].pdf

    在SQL中,查询表结构是数据库管理中常见的任务,它涉及到获取关于数据库中表的详细信息,如表名、列名、数据类型以及索引等。以下是一些关键知识点: 1. **系统表**: SQL Server维护了一系列的系统表,它们存储了...

    SAP ABAP-Dictionary_查询表结构和内容.ppt

    SAP ABAP-Dictionary_查询表结构和内容 实战技术

    SQL server表结构查询

    用于快速的查询表结构,主要用于SQL server数据库,方便查看注释,类型,备注等等。

    oracle修改表结构

    以上操作涉及了Oracle数据库中修改表结构的主要方法,但值得注意的是,在执行这些操作前,应确保数据的完整性和一致性,必要时备份数据,以防意外损失。 ### 实际案例分析 例如,假设有一张名为`skate_test`的表,...

    jdbc 读取表结构

    获取表的结构,无论是任何数据库,只要把驱动包加进去就可以了。

    SqlServer查看表结构

    例如,当进行数据迁移、修改数据逻辑或执行查询优化时,掌握准确的表结构可以帮助避免潜在的数据丢失或错误。 ### 如何查看表结构:SQL Server示例代码分析 #### SQL Server脚本详解 以下是一段用于在SQL Server...

    sql查询表结构.sql

    sql可以获取到数据库表的stabledes.value as 表名说明,sobj.name as 表名,scol.colid as 列号, scol.name as 列名,sprop.[value] as 列说明,stype.name as 列数据类型,scol.length as 列数据长度,scol.isnullable as...

    keephunny#document#查询表结构信息1

    一、简单描述表结构,字段类型 二、查询表中列的注释信息 三、只查询列名和注释 四、#查看表的注释 五、查看表生成的DDL

    mysql 查询表结构的2种 sql 语句.7z

    要查询 MySQL 数据库中表的结构,可以使用 DESCRIBE 语句或 SHOW COLUMNS 语句。这些语句可以向用户提供有关表的详细信息, 如列名、 数据类型、键信息等。 1. DESCRIBE 语句: 使用 DESCRIBE 语句可以获取表的...

    得到某个数据库的详细数据表结构

    一次性生成某个数据库的详细的数据结构,生成的文件为html格式,且按表名排序好,方便程序人员查看。最主要是不需要每次有结构... <br/>使用心得: 在数据表设计时,为每个表加上表描述,为每个字段加上说明

    java实现导出oarcle表结构到excel

    在Java编程环境中,将Oracle数据库的表结构导出到Excel是一种常见的需求,特别是在数据库管理和数据分析时。这个场景可以通过两个核心类来实现:`TableStructureToExcel.java`和`ConnectionOracle.java`。这两个类...

    SQLSERVER表结构查询及字段添加小工具

    在SQL Server中,查询表结构通常涉及使用SQL语句,例如`SELECT * FROM sys.objects WHERE type = 'U'`来获取所有用户定义的表,或者`EXEC sp_help 'TableName'`来获取特定表的详细信息。然而,手动执行这些命令可能...

    Oracle中导出表结构

    #### 三、综合查询表结构及其注释 为了同时获取表结构及其对应的注释信息,可以通过连接`USER_TAB_COLUMNS`和`USER_COL_COMMENTS`两个视图来实现。 **示例查询:** ```sql SELECT ua.TABLE_NAME, ua.COLUMN_NAME,...

Global site tag (gtag.js) - Google Analytics