獲取表結構

2021-05-21 20:49:19 字數 2932 閱讀 2299

--sql server 2000

--feixian***

--sql server 2000

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')

=1then'√

'else

''end

,主鍵      

=case

when

exists

(select

1from

sysobjects

where

xtype='

pk'andparent_obj

=a.id

andname in(

select

name

from

sysindexes

where

indid in(

select

indid

from

sysindexkeys

where

id =

a.id

andcolid

=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

ona.xusertype

=b.xusertype

inner

join

sysobjects d

ona.id

=d.id 

andd.xtype='

u'andd.name

<>

'dtproperties

'left

join

syscomments e

ona.cdefault

=e.id

left

join

sysproperties g

ona.id

=g.id

anda.colid

=g.smallid 

left

join

sysproperties f

ond.id

=f.id

andf.smallid=0

where

d.name='

要查詢的表'--

如果只查詢指定表,加上此條件

order

bya.id,a.colorder

--sql server 2005

--wzy_love_sly

declare

@tbname

varchar

(100

)set

@tbname='

tb'select

a.name

as欄位名,

b.name

as資料型別,

a.length

as長度,

是否主鍵

=case

when

a.colid in(

select

colid

from

sys.sysindexkeys

where

indid=1

andid

=object_id

(@tbname

)) then

'是主鍵

'else

'不是主鍵

'end

,是否可為空

=case

when

a.status

&0x08

>

0then'是

'else'否

'end

from

syscolumns a

inner

join

systypes b

ona.usertype

=b.usertype

where

a.id

=object_id

(@tbname

)

獲取ACCESS表結構

經常有朋友問怎麼得到access的表結構。public sub gettables dim rs as new adodb.recordset dim conn as adodb.connection dim ssql as string set conn currentproject.connec...

SqlServer 獲取表結構

1.獲取表的基本字段屬性 獲取sqlserver中表結構 select syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length from syscolumns,systypes where syscolumns.xu...

sql 獲取表結構

alter procedure dbo tbinfo tbname varchar 50 表名稱 as select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.val...