不可不說
          隨心所欲,無往不利!
          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)

          相冊

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 325325
          • 排名 - 172

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 馆陶县| 射洪县| 丁青县| 涪陵区| 怀柔区| 开平市| 琼结县| 稻城县| 渑池县| 呼图壁县| 江川县| 常宁市| 五原县| 广安市| 当涂县| 礼泉县| 响水县| 麻江县| 嫩江县| 翁源县| 安国市| 汶上县| 巴中市| 连山| 五大连池市| 昔阳县| 石狮市| 岳西县| 安陆市| 万年县| 大理市| 中山市| 潜山县| 双城市| 山阴县| 迁西县| 延安市| 钟祥市| 沛县| 松潘县| 宁都县|