Sybase查詢表結構的方法(相似於Oracle的Desc)
阿新 • • 發佈:2017-07-03
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)