zoukankan      html  css  js  c++  java
  • [转]mssql中得到库里所有的表名,以及表的结构(列名和数据类型)

    本文转自:http://kyle.itpub.net/post/1626/8891

    原文如下:
    ------------------得到数据库中所有的表名,以及表对应的字段,字段对应的类型,存放在#magic临时表里
    if exists (select * from tempdb..sysobjects where name like '#magic%')
    drop table #magic
    go
    select a.name name,b.name col,c.name type
    into #magic
    from sysobjects a,syscolumns b,systypes c
    where a.xtype = 'U'
    and a.id = b.id
    and b.xtype = c.xtype
    and b.xusertype = c.xusertype

    --------------------将结果加工
    select (case when tmp3.no=1 then tmp3.name else ' ' end) name,col,type
    from
    (select top 100000000 name
     ,(select count(1) from #magic tmp1
       where tmp1.name=tmp2.name
       and tmp1.col<=tmp2.col) as no,col,type
       from #magic tmp2
       order by name,col,type)
    tmp3

    --------------------下面一种方法转自csdn
    SELECT
    (case when a.colorder=1 then d.name else '' end) N'表名',
    a.colorder N'字段序号',
    a.name N'字段名',
    (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',
    (case when (SELECT count(*)
    FROM sysobjects
    WHERE (name in
    (SELECT name
    FROM sysindexes
    WHERE (id = a.id) AND (indid in
    (SELECT indid
    FROM sysindexkeys
    WHERE (id = a.id) AND (colid in
    (SELECT colid
    FROM syscolumns
    WHERE (id = a.id) AND (name = a.name))))))) AND
    (xtype = 'PK'))>0 then '√' else '' end) N'主键',
    b.name N'类型',
    a.length N'占用字节数',
    COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
    isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
    (case when a.isnullable=1 then '√'else '' end) N'允许空',
    isnull(e.text,'') N'默认值',
    isnull(g.[value],'') AS N'字段说明'
    --into ##tx

    FROM syscolumns a left join systypes b
    on a.xtype=b.xusertype
    inner join sysobjects d
    on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
    left join syscomments e
    on a.cdefault=e.id
    left join sysproperties g
    on a.id=g.id AND a.colid = g.smallid
    order by object_name(a.id),a.colorder

    ------------------再来一个视图
    SELECT tbl.name AS TableName, tbl.xtype AS TableType, col.name AS FieldName, 
          tt.name 
    AS FieldType, col.length AS FieldLength
    FROM dbo.syscolumns col INNER JOIN
          dbo.sysobjects tbl 
    ON col.id = tbl.id INNER JOIN
          dbo.systypes tt 
    ON col.xtype = tt.xtype
    WHERE (tbl.xtype = 'u'AND (tt.name <> N'sysname')

  • 相关阅读:
    vue element 表格错位问题
    echarts tooltip 按值的降序显示 tip 信息
    前端 玫瑰花小样式
    echarts X轴数据过多批量显示
    微信js sdk的使用初步理解
    对象 的循环嵌套
    移动端拉起电话请求
    js后加版本号
    数组排序于数组去重
    es6数组的方法
  • 原文地址:https://www.cnblogs.com/SoulStore/p/875277.html
Copyright © 2011-2022 走看看