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

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 台前县| 安化县| 清涧县| 长沙市| 海城市| 靖边县| 那坡县| 赤水市| 盱眙县| 鲜城| 泾阳县| 梨树县| 清远市| 观塘区| 逊克县| 庐江县| 铜山县| 安丘市| 松滋市| 宣恩县| 政和县| 昌图县| 女性| 忻城县| 万安县| 浮山县| 嘉峪关市| 略阳县| 聂荣县| 凌云县| 南皮县| 孝感市| 沙雅县| 芜湖市| 宾川县| 禄劝| 平潭县| 三亚市| 太白县| 车险| 阿巴嘎旗|