zoukankan      html  css  js  c++  java
  • SQL语句来获取一个表的所有列的信息,如,列名、类型、长度等

    本代码适用于: SQLSERVER2000/2005
    SQL语句如下:

    select c.name, t.name as type, c.length
      ,(
    case t.name
        
    when 'nvarchar' then c.length/2
        
    when 'nchar' then c.length/2
        
    else c.length
      
    end)
      
    as reallength
    from syscolumns c join systypes t
    on c.xtype=t.xtype
    where t.name <> 'sysname' and c.id=object_id('Table1')

    -- 加了这句代码,可以使列按设计时的顺序输出

    order by colorder ASC


    为了方便使用,可将其封装成一个函数代码如下:

    --
    --
     返回一个表的列信息
    --
     用法:select * from tbl_columns('Table1')
    --
     zyl 2007.11.6
    --
    create function tbl_columns(@tablename nvarchar(256))
    returns @tmptb table(
      name 
    nvarchar(256),
      type 
    varchar(256),
      length 
    int,
      reallength 
    int
    )
    begin
    insert into @tmptb
    select c.name, t.name as type, c.length
      ,(
    case t.name
        
    when 'nvarchar' then c.length/2
        
    when 'nchar' then c.length/2
        
    else c.length
      
    end)
      
    as reallength
    from syscolumns c join systypes t
    on c.xtype=t.xtype
    where t.name <> 'sysname' and c.id=object_id(@tablename)
    return 
    end


    这是一个运行结果:

    黑米
    关注 - 0
    粉丝 - 1
  • 相关阅读:
    .Net 多线程小结
    VIM 入门操作
    C语言中的数据
    对scanf和printf的研究!!
    C语言常用的编程规范
    ORACLE GOLDEN GATE oracle同步数据至kafka
    mysql5.7关于使用到OR是否会用到索引并提高查询效率的探讨
    sysbench安装
    percona数据库监控工具的安装部署
    redhat6 快速部署percona
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1807882.html
Copyright © 2011-2022 走看看