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 閱讀(418) 評論(0)  編輯  收藏 所屬分類: 網絡資料
          主站蜘蛛池模板: 平遥县| 徐闻县| 综艺| 呼和浩特市| 连州市| 博爱县| 南充市| 台中县| 宜州市| 怀来县| 漳州市| 武义县| 沅陵县| 钟祥市| 孝昌县| 樟树市| 永和县| 香港 | 蕉岭县| 尚志市| 泰顺县| 蚌埠市| 辽阳市| 台南市| 天气| 涟源市| 南和县| 曲水县| 霍邱县| 镇沅| 鄂州市| 右玉县| 龙口市| 三台县| 宁国市| 海阳市| 自治县| 原平市| 通辽市| 金门县| 镇江市|