zoukankan      html  css  js  c++  java
  • 获取数据库表的一些信息

    获取数据库表的一些信息:

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetDatabaseSchemaInformation]'and OBJECTPROPERTY(id, N'IsProcedure'= 1)
    drop procedure [dbo].[GetDatabaseSchemaInformation]
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS OFF
    GO

    CREATE  Procedure dbo.GetDatabaseSchemaInformation AS
    select cols.TABLE_NAME As 'Table Name',
          cols.COLUMN_NAME 
    as 'Column Name',
          cols.DATA_TYPE 
    as 'Data Type',
                      
    case
                            
    when cols.DATA_TYPE = 'bigint' then '8 bytes'
                            
    when cols.DATA_TYPE = 'int' then '4 bytes'
                            
    when cols.DATA_TYPE = 'smallint' then '2 bytes'
                            
    when cols.DATA_TYPE = 'tinyint' then '1 byte'
                            
    when cols.DATA_TYPE = 'bit' then '1 byte'
                            
    when cols.DATA_TYPE = 'money' then '8 bytes'
                            
    when cols.DATA_TYPE = 'smallmoney' then '4 bytes'
                            
    when cols.DATA_TYPE = 'text' then '16 bytes'
                            
    when cols.DATA_TYPE = 'datetime' then '8 bytes'
                            
    when cols.DATA_TYPE = 'smalldatetime' then '4 bytes'
                            
    when cols.DATA_TYPE = 'uniqueidentifier' then '16 bytes'
                            
    when cols.DATA_TYPE = 'decimal' then convert (varchar,cols.NUMERIC_PRECISION) + '' + convert(varchar, cols.NUMERIC_SCALE)
                            
    else convert(varchar, cols.CHARACTER_MAXIMUM_LENGTH) + ' chars'
                      
    end as 'Length',
                      
    case
                            
    when kcu.CONSTRAINT_NAME is null then 'NO' else 'YES'
                      
    end as 'PK?',
                      
    upper(cols.IS_NULLABLE) as 'Allows Nulls',
                      
    isnull(cols.COLUMN_DEFAULT, ''as 'Default Value'
    from INFORMATION_SCHEMA.COLUMNS cols
          
    join INFORMATION_SCHEMA.TABLES tabs on cols.TABLE_NAME = tabs.TABLE_NAME and
    tabs.TABLE_TYPE 
    = 'BASE TABLE'
          
    left join INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE ctu on cols.TABLE_NAME = ctu.TABLE_NAME and ctu.CONSTRAINT_NAME like 'PK%'
          
    left join INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu on ctu.CONSTRAINT_NAME = 
    kcu.CONSTRAINT_NAME 
    and cols.COLUMN_NAME = kcu.COLUMN_NAME
    where tabs.TABLE_NAME <> 'dtproperties'
    order by cols.TABLE_NAME, cols.ORDINAL_POSITION

    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

  • 相关阅读:
    e:可以解包多种存档花样的小工具
    Envy-便当的显卡驱动装置脚本
    用 Timer Applet 做 GTD 经管
    Sabayon:治理 GNOME 用户的设置
    网管的心得体会
    WinAPI: WindowFromPoint 获取指定点所在窗口的句柄
    WinAPI: SetLayeredWindowAttributes 设置窗口的透明
    谈谈 Delphi 的类型与指针[1]
    全局探色器
    说到"计算器", 建议大家用它进行"进制转换"
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/25844.html
Copyright © 2011-2022 走看看