列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 列名或过程参数的名称。 |
id | int | 该列所属的表对象 ID,或与该参数关联的存储过程 ID。 |
xtype | tinyint | systypes 中的物理存储类型。 |
xprec | tinyint | 仅限内部使用。 |
xscale | tinyint | 仅限内部使用。 |
colid | smallint | 列或参数 ID。 |
xoffset | smallint | 仅限内部使用。 |
bitpos | tinyint | 仅限内部使用。 |
reserved | tinyint | 仅限内部使用。 |
colstat | smallint | 仅限内部使用。 |
cdefault | int | 该列的默认值 ID。 |
domain | int | 该列的规则或 CHECK 约束 ID。 |
number | smallint | 过程分组时(0 表示非过程项)的子过程号。 |
colorder | smallint | 仅限内部使用。 |
autoval | varbinary(255) | 仅限内部使用。 |
offset | smallint | 该列所在行的偏移量;如果为负,表示可变长度行。 |
status | tinyint | 用于描述列或参数属性的位图: 0x08 = 列允许空值。 |
type | tinyint | systypes 中的物理存储类型。 |
usertype | smallint | systypes 中的用户定义数据类型 ID。 |
printfmt | varchar(255) | 仅限内部使用。 |
prec | smallint | 该列的精度级别。 |
scale | int | 该列的小数位数。 |
iscomputed | int | 表示是否已计算该列的标志: 0 = 未计算。 |
isoutparam | int | 表示该过程参数是否是输出参数: 1 = 真。 |
isnullable | int | 表示该列是否允许空值: 1 = 真。 |
select
a.name column_name,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then 1 else 0 end) column_Identity,--标识
(case when (select count(*)
from sysobjects
where (name in
(select name
from sysindexes
where (id = a.id) and (indid in
(select indid
from sysindexkeys
where (id = a.id) and (colid in
(select colid
from syscolumns
where (id = a.id) and (name = a.name))))))) and
(xtype = 'PK'))>0 then 1 else 0 end) column_pk,--主键,
b.name column_type,--类型,
a.length column_bitlength,--占用字节数,
COLUMNPROPERTY(a.id,a.name,'PRECISION') as column_length,--长度,
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as column_dec,--小数位数,
(case when a.isnullable=1 then 1 else 0 end) column_isnull,--允许空,
isnull(e.text,'') column_def,--默认值,
isnull(g.[value],'') as column_properties --字段说明
from syscolumns a left join systypes b
on a.xtype=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 sys.extended_properties g
on a.id=g.major_id and a.colid = g.minor_id
WHERE
OBJECT_NAME( A.ID ) = N'CGQSJB'
order by a.id,a.colorder