--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...