请问高手,SQLServer中的系统表syscolumns中length和prec到底哪个是字段的长度?好像有时length是,有时prec又是。
请问高手,SQLServer中的系统表syscolumns中length和prec到底哪个是字段的长度?好像有时length是,有时prec又是。length的字段名最像,但有时记录的内容与设置的长度不符,prec有时倒是和设置的长度相符,可他具体是什么意思呢?困惑...... 问题点数:20、回复次数:7Top
1 楼DigJim(挖土)回复于 2003-11-04 21:54:31 得分 4
length --- systypes 中的最大物理存储长度。
prec --- 该列的精度级别。
Top
2 楼intersun(.NET 3.0)回复于 2003-11-04 21:57:21 得分 0
那是否某些类型的字段,其length值和设置的值不一样呢?Top
3 楼gmlxf(烛光)回复于 2003-11-05 00:13:00 得分 3
每种类型的length值和设置的值与你在建立字段的时候指定。Top
4 楼sunshareforever(阳光)回复于 2003-11-05 08:44:00 得分 3
length:是你所想要的长度
prec:是数据类型的精度Top
5 楼pengdali()回复于 2003-11-05 08:47:42 得分 0
select d.name,a.name ,b.name ,a.length, a.isnullable from syscolumns a, systypes b,sysobjects d where a.xtype=b.xusertype and a.id=d.id and d.xtype='U'Top
6 楼pengdali()回复于 2003-11-05 08:48:27 得分 10
name sysname 列名或过程参数的名称。
id int 该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtype tinyint systypes 中的物理存储类型。
typestat tinyint 仅限内部使用。
xusertype smallint 扩展的用户定义数据类型 ID。
length smallint 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 = 列允许空值。
0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。
0x40 = 参数为 OUTPUT 参数。
0x80 = 列为标识列。
type tinyint systypes 中的物理存储类型。
usertype smallint systypes 中的用户定义数据类型 ID。
printfmt varchar(255) 仅限内部使用。
prec smallint 该列的精度级别。
scale int 该列的小数位数。
iscomputed int 表示是否已计算该列的标志:
0 = 未计算。
1 = 已计算。
isoutparam int 表示该过程参数是否是输出参数:
1 = 真。
0 = 假。
isnullable int 表示该列是否允许空值:
1 = 真。
0 = 假。
Top
7 楼intersun(.NET 3.0)回复于 2003-11-05 14:00:36 得分 0
pengdali(大力 V3.0)兄,一直很佩服你对SQLServer的了解程度。
请问SQLServer各系统表的字段含义是你自己凭经验总结的还是有参考资料,如有资料能否发给我一份(intersun@sina.com.cn),万分感谢!
还有个疑问,你说的colstat字段是仅限内部使用,而我发现当有个字段被设为标识时,colstat字段值总是为1,现在我已经使用colstat字段作为该字段是否为标识的依据,请问这是否有不妥之处?Top




