1. 程式人生 > >Sybase查詢表結構的方法(相似於Oracle的Desc)

Sybase查詢表結構的方法(相似於Oracle的Desc)

style 查詢 sybase family img 怎麽辦 pan 存儲過程 暫時

經過我多次驗證。最終找到了Sybase中查詢數據庫結構的方法了。

在此之前,我就非常不解這Sybase數據庫怎麽就沒有和Oracle、MySql一樣簡便的方法呢

desc 表名;

在網上查詢之後,得到一個結果。

sp_help 表名;

可是這樣查出了多個結果。盡管裏面有我們想要的結果。但我們僅僅取一個,並且還在中間。

怎麽辦呢?看存儲過程源代碼。把我們想要的結果截取出來吧。

sp_help存儲過程在sybsystemprocs庫中,

源代碼:

代碼篇幅過長,此處省略……

一行一行推斷,找下去。

我們發如今源代碼的556行“if (@sysstat & 15) in (1, 2, 3)”有我們想要的結果,這段IF語句是將表結果查詢之後插入一個暫時表#helptype中,然後再進行查詢出來的。

我們不要那麽麻煩,僅僅取裏面的三列:字段名,字段類型。字段長度。

當然你想封裝成存儲過程也能夠的,但不能使用desc就是。

select isnull(c.name, ‘NULL‘) ‘字段名‘,
t.name ‘字段類型‘,
c.length ‘字段長度‘
from syscolumns c, systypes t, sysxtypes x
where c.id = object_id(‘表名‘)
and c.usertype *= t.usertype
and c.xtype *= x.xtid;

技術分享

Sybase查詢表結構的方法(相似於Oracle的Desc)