比如:char,vchar用datatype属性都是显示string类型,如何得到char,vchar类型啊?请高手指教!

解决方案 »

  1.   

    获取表的详细信息:
    SELECT 
    (case when a.colorder=1 then d.name else '' end) N'表名', 
    a.colorder N'序号', a.name N'字段名', 
    (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then 'Yes'else '' end) N'标识', 
    (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 'Yes' else '' end) N'主键', 
    b.name N'类型', a.length N'占用字节数', 
    COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度', 
    isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数', 
    (case when a.isnullable=1 then 'Yes'else '' end) N'允许空', 
    isnull(e.text,'') N'默认值', isnull(g.[value],'') AS N'字段说明' 
    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 sysproperties g on a.id=g.id AND a.colid = g.smallid 
    where d.name = 'tableName'
    order by object_name(a.id), a.colorder
      

  2.   

    注意:d.name = 'tableName' 这个表名tableName要改成你想查看的表名!
      

  3.   

    谢谢,不过我现在用的是sql2005,怎么办啊!