不可不說
          隨心所欲,無往不利!
          posts - 88,  comments - 92,  trackbacks - 0
          最近在研究根據表結構生成Java文件的工具,
          在取得表的字段時如何取得表的各種信息和注釋,
          這個問題困擾了我,經多方搜尋找到如下資料備用:

          Oracle:
            user_tab_comments;表注釋  
            user_col_comments;表字段注釋  
            以上兩個只能獲取自己用戶的表的注釋信息,如果要訪問自己能夠訪問的其他用戶的表,則需要使用:  
            all_tab_comments;表注釋  
            all_col_comments;表字段注釋  
            當然,如果有DBA權限,則可以使用  
            dba_tab_comments;表注釋  
            dba_col_comments;表字段注釋  
            dba*和all*最好指定owner條件。user*沒有該字段


          MSSQL:  
            select   b.[value]  
            from syscolumns a left join sysproperties b on a.id=b.id
                 and a.colid=b.smallid inner join sysobjects c on a.id=c.id    
                 and a.[name]='列名' and c.[name]='表名'

            SELECT    
            表名=case   when   a.colorder=1   then   d.name   else   ''   end,  
            表說明=case   when   a.colorder=1   then   isnull(f.value,'')   else   ''   end,  
            字段序號=a.colorder,  
            字段名=a.name,  
            標識=case   when   COLUMNPROPERTY(   a.id,a.name,'IsIdentity')=1   then   '√'else   ''   end,  
            主鍵=case   when   exists(SELECT   1   FROM   sysobjects   where   xtype='PK'   and   name   in   (  
            SELECT   name   FROM   sysindexes   WHERE   indid   in(  
            SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND   colid=a.colid  
            )))   then   '√'   else   ''   end,  
            類型=b.name,  
            占用字節數=a.length,  
            長度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),  
            小數位數=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),  
            允許空=case   when   a.isnullable=1   then   '√'else   ''   end,  
            默認值=isnull(e.text,''),  
            字段說明=isnull(g.[value],'')  
            FROM   syscolumns   a  
            left   join   systypes   b   on   a.xusertype=b.xusertype  
            inner   join   sysobjects   d   on   a.id=d.id     and   d.xtype='U'   and     d.name<>'dtproperties'  
            left   join   syscomments   e   on   a.cdefault=e.id  
            left   join   sysproperties   g   on   a.id=g.id   and   a.colid=g.smallid      
            left   join   sysproperties   f   on   d.id=f.id   and   f.smallid=0  
            --where   d.name='orders'         --如果只查詢指定表,加上此條件  
            order   by   a.id,a.colorder


          posted on 2008-07-05 22:58 藍劍 閱讀(4216) 評論(2)  編輯  收藏

          FeedBack:
          # re: 從Oracle、SQLServer中取得注釋
          2008-07-30 11:34 | 代理163
          很實用~  回復  更多評論
            
          # re: 從Oracle、SQLServer中取得注釋
          2011-07-08 18:24 | wangw
          這個不錯!  回復  更多評論
            

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


          網站導航:
           


          <2008年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(6)

          隨筆分類(62)

          隨筆檔案(90)

          文章檔案(9)

          相冊

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 325293
          • 排名 - 172

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 闽侯县| 池州市| 饶阳县| 六枝特区| 彭州市| 五台县| 澎湖县| 建阳市| 诸暨市| 屏南县| 英超| 宜川县| 灵宝市| 花莲县| 普安县| 新巴尔虎右旗| 汪清县| 班玛县| 灵宝市| 页游| 兴仁县| 板桥市| 大渡口区| 沂源县| 新化县| 商都县| 双辽市| 遂昌县| 峨眉山市| 苗栗市| 博湖县| 长宁区| 金门县| 广饶县| 南陵县| 普兰店市| 南城县| 浙江省| 三都| 襄城县| 阜平县|