日期:2014-05-18  浏览次数:20375 次

关于获取某个表中某个数据类型的字段名的问题
我想要获取某个表中所有numeric(5,2)的字段名

SQL语句如下

SELECT Name,type FROM 数据库名..SysColumns WHERE id=Object_Id('表名') and type = 108

其中108是numeric(5,2)对应的数据类型的值,返回了我想要的结果

但是总觉的这样 不是个好的解决方法
当执行下面的语句时,
SELECT Name,type FROM 数据库名..SysColumns WHERE id=Object_Id('表名')
返回的type都是整数

那么是否意味着数据库中所有的数据类型是有固定的值?

我上网查找资料没有找到这方面的解释,另,有什么其他办法解决这个问题?

谢谢!

------解决方案--------------------
SQL code
 type  tinyint 类型
 对应表sys.types 中的物理存储类型。

------解决方案--------------------
SQL code
syscolumns 的xtype 和 sys.types 的system_type_id 是对应的 都是tinyint 类型

------解决方案--------------------
查看108是numeric(5,2)時這樣用
SQL code
SELECT Name,TYPE_NAME(xusertype)  AS 類型
FROM 数据库名..syscolumns 
WHERE ID=OBJECT_ID('表名') AND xusertype=108 AND prec=5 AND scale=2