lbom

          小江西

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            18 隨筆 :: 21 文章 :: 69 評論 :: 0 Trackbacks
          ------------------------- MS SQLServer ------------------------------------------------------------

          --表說明
          SELECT dbo.sysobjects.name AS TableName,
          dbo.sysproperties.[value] AS TableDesc
          FROM dbo.sysproperties INNER JOIN
          dbo.sysobjects ON dbo.sysproperties.id = dbo.sysobjects.id
          WHERE (dbo.sysproperties.smallid = 0)
          ORDER BY dbo.sysobjects.name

          --字段說明
          SELECT dbo.sysobjects.name AS TableName, dbo.syscolumns.colid,
          dbo.syscolumns.name AS ColName, dbo.sysproperties.[value] AS ColDesc
          FROM dbo.sysproperties INNER JOIN
          dbo.sysobjects ON dbo.sysproperties.id = dbo.sysobjects.id INNER JOIN
          dbo.syscolumns ON dbo.sysobjects.id = dbo.syscolumns.id AND
          dbo.sysproperties.smallid = dbo.syscolumns.colid
          ORDER BY dbo.sysobjects.name, dbo.syscolumns.colid

          --主鍵、外鍵信息(簡化)
          select
          c_obj.name as CONSTRAINT_NAME
          ,t_obj.name as TABLE_NAME
          ,col.name as COLUMN_NAME
          ,case col.colid
          when ref.fkey1 then 1
          when ref.fkey2 then 2
          when ref.fkey3 then 3
          when ref.fkey4 then 4
          when ref.fkey5 then 5
          when ref.fkey6 then 6
          when ref.fkey7 then 7
          when ref.fkey8 then 8
          when ref.fkey9 then 9
          when ref.fkey10 then 10
          when ref.fkey11 then 11
          when ref.fkey12 then 12
          when ref.fkey13 then 13
          when ref.fkey14 then 14
          when ref.fkey15 then 15
          when ref.fkey16 then 16
          end as ORDINAL_POSITION
          from
          sysobjects c_obj
          ,sysobjects t_obj
          ,syscolumns col
          ,sysreferences ref
          where
          permissions(t_obj.id) != 0
          and c_obj.xtype in ('F ')
          and t_obj.id = c_obj.parent_obj
          and t_obj.id = col.id
          and col.colid in
          (ref.fkey1,ref.fkey2,ref.fkey3,ref.fkey4,ref.fkey5,ref.fkey6,
          ref.fkey7,ref.fkey8,ref.fkey9,ref.fkey10,ref.fkey11,ref.fkey12,
          ref.fkey13,ref.fkey14,ref.fkey15,ref.fkey16)
          and c_obj.id = ref.constid
          union
          select
          i.name as CONSTRAINT_NAME
          ,t_obj.name as TABLE_NAME
          ,col.name as COLUMN_NAME
          ,v.number as ORDINAL_POSITION
          from
          sysobjects c_obj
          ,sysobjects t_obj
          ,syscolumns col
          ,master.dbo.spt_values v
          ,sysindexes i
          where
          permissions(t_obj.id) != 0
          and c_obj.xtype in ('UQ' ,'PK')
          and t_obj.id = c_obj.parent_obj
          and t_obj.xtype = 'U'
          and t_obj.id = col.id
          and col.name = index_col(t_obj.name,i.indid,v.number)
          and t_obj.id = i.id
          and c_obj.name = i.name
          and v.number > 0
          and v.number <= i.keycnt
          and v.type = 'P'

          order by CONSTRAINT_NAME, ORDINAL_POSITION


          --主鍵、外鍵對照(簡化)
          select
          fc_obj.name as CONSTRAINT_NAME
          ,i.name as UNIQUE_CONSTRAINT_NAME
          from
          sysobjects fc_obj
          ,sysreferences r
          ,sysindexes i
          ,sysobjects pc_obj
          where
          permissions(fc_obj.parent_obj) != 0
          and fc_obj.xtype = 'F'
          and r.constid = fc_obj.id
          and r.rkeyid = i.id
          and r.rkeyindid = i.indid
          and r.rkeyid = pc_obj.id


          ------------------------------------------ ORACLE ----------------------------------------------------

          --表信息
          select * from all_tab_comments t
          where owner='DBO'

          --列信息
          select * from all_col_comments t
          where owner='DBO'

          --主鍵、外鍵對照
          select OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_OWNER, R_CONSTRAINT_NAME
          from all_constraints
          where owner='DBO' and (Constraint_Type='P' or Constraint_Type='R')


          --主鍵、外鍵信息
          select *
          from all_cons_columns
          where owner='DBO'
          order by Constraint_Name, Position


          -------------------------------------------- Access ----------------------------------------------------
          //Access中的系統表MSysobjects存儲屬性的字段是二進制格式,不能直接分析
          //可以采用ADO自帶的OpenSchema方法獲得相關信息

          //use ADOInt.pas
          //po: TableName
          //DBCon:TADOConnection
          /ds:TADODataSet

          --表信息
          DBCon.OpenSchema(siTables, VarArrayOf([Null, Null, 'Table']), EmptyParam, ds);

          --列信息
          DBCon.OpenSchema(siColumns, VarArrayOf([Null, Null, 'po']), EmptyParam, ds);

          --主鍵
          DBCon.OpenSchema(siPrimaryKeys, EmptyParam, EmptyParam, ds);


          --主鍵、外鍵對照
          DBCon.OpenSchema(siForeignKeys, EmptyParam, EmptyParam, ds);

          posted on 2006-03-24 08:36 lbom 閱讀(415) 評論(0)  編輯  收藏 所屬分類: 網絡資料
          主站蜘蛛池模板: 宁远县| 旅游| 保康县| 巴林左旗| 兴业县| 崇仁县| 南丹县| 呼伦贝尔市| 莱州市| 福贡县| 乌恰县| 和平区| 皋兰县| 莫力| 古蔺县| 陇川县| 邓州市| 深泽县| 聊城市| 尤溪县| 石首市| 沅江市| 虹口区| 廉江市| 连州市| 建湖县| 梁平县| 高平市| 鲁甸县| 九江市| 梓潼县| 海丰县| 沙坪坝区| 舟山市| 昌黎县| 济南市| 黑水县| 宿松县| 康保县| 瑞丽市| 屏山县|