posts - 1,  comments - 0,  trackbacks - 0
           

          關于OracleSqlServer中獲取所有字段、主鍵、外鍵


          (一)Oracle:
          1、查詢某個表中的字段名稱、類型、精度、長度、是否為空
          select COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE,NULLABLE
          from user_tab_columns
          where table_name ='YourTableName'
          2、查詢某個表中的主鍵字段名
          select col.column_name
          from user_constraints con,  user_cons_columns col
          where con.constraint_name = col.constraint_name
          and con.constraint_type='P'
          and col.table_name = 'YourTableName'
          3、查詢某個表中的外鍵字段名稱、所引用表名、所應用字段名
          select distinct(col.column_name),r.table_name,r.column_name
          from
          user_constraints con,
          user_cons_columns col,
          (select t2.table_name,t2.column_name,t1.r_constraint_name
           from user_constraints t1,user_cons_columns t2
           where t1.r_constraint_name=t2.constraint_name
           and t1.table_name='YourTableName'
           ) r
          where con.constraint_name=col.constraint_name
          and con.r_constraint_name=r.r_constraint_name
          and con.table_name='YourTableName'

          (二)SQLServer中的實現:
          1、字段:
          SELECT c.name,t.name,c.xprec,c.xscale,c.isnullable
          FROM systypes t,syscolumns c
          WHERE t.xtype=c.xtype
          AND c.id = (SELECT id FROM sysobjects WHERE name='YourTableName')
          ORDER BY c.colid

          2、主鍵(參考SqlServer系統存儲過程sp_pkeys):
          select COLUMN_NAME = convert(sysname,c.name)              
          from                                                      
          sysindexes i, syscolumns c, sysobjects o                  
          where o.id = object_id('[YourTableName]')                 
          and o.id = c.id                                           
          and o.id = i.id                                           
          and (i.status & 0x800) = 0x800                            
          and (c.name = index_col ('[YourTableName]', i.indid,  1) or    
               c.name = index_col ('[YourTableName]', i.indid,  2) or    
               c.name = index_col ('[YourTableName]', i.indid,  3) or    
               c.name = index_col ('[YourTableName]', i.indid,  4) or    
               c.name = index_col ('[YourTableName]', i.indid,  5) or    
               c.name = index_col ('[YourTableName]', i.indid,  6) or    
               c.name = index_col ('[YourTableName]', i.indid,  7) or    
               c.name = index_col ('[YourTableName]', i.indid,  8) or    
               c.name = index_col ('[YourTableName]', i.indid,  9) or    
               c.name = index_col ('[YourTableName]', i.indid, 10) or    
               c.name = index_col ('[YourTableName]', i.indid, 11) or    
               c.name = index_col ('[YourTableName]', i.indid, 12) or    
               c.name = index_col ('[YourTableName]', i.indid, 13) or    
               c.name = index_col ('[YourTableName]', i.indid, 14) or    
               c.name = index_col ('[YourTableName]', i.indid, 15) or    
               c.name = index_col ('[YourTableName]', i.indid, 16)      
               )

          3、外鍵:
          select t1.name,t2.rtableName,t2.name
          from
          (select col.name, f.constid as temp
           from syscolumns col,sysforeignkeys f
           where f.fkeyid=col.id
           and f.fkey=col.colid
           and f.constid in
           ( select distinct(id) 
             from sysobjects
             where OBJECT_NAME(parent_obj)='YourTableName'
             and xtype='F'
            )
           ) as t1 ,
          (select OBJECT_NAME(f.rkeyid) as rtableName,col.name, f.constid as temp
           from syscolumns col,sysforeignkeys f
           where f.rkeyid=col.id
           and f.rkey=col.colid
           and f.constid in
           ( select distinct(id)
             from sysobjects
             where OBJECT_NAME(parent_obj)='YourTableName'
             and xtype='F'
           )
          ) as t2
          where t1.temp=t2.temp

          posted on 2010-04-28 08:52 cjm 閱讀(310) 評論(0)  編輯  收藏 所屬分類: DataBase

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 康保县| 台南县| 灵山县| 商水县| 蒙自县| 丰原市| 吉首市| 泊头市| 偃师市| 兴业县| 镇雄县| 新疆| 雷山县| 翁牛特旗| 南汇区| 武汉市| 台山市| 射洪县| 彭山县| 招远市| 淮南市| 讷河市| 塔城市| 独山县| 石渠县| 东乡县| 尚志市| 嘉黎县| 上饶市| 承德市| 临沂市| 金平| 莱州市| 美姑县| 佛教| 高州市| 铜梁县| 新晃| 龙井市| 廊坊市| 南和县|