sql 查找表中定义的列宽

方法一:(推荐使用:可以查出字段的宽度,但不好之处如果类型为 nvarchar 的时候 你就需要除以2 带N的代表是双字节
 select   a.name         --字段名  
         ,c.name         --数据类型 
         ,c.length       --数据类型的长度
         ,a.length       --表中定义时所使用的长度
      
  from   syscolumns   a,  
         sysobjects   b,  
         systypes   c  
 
  where   a.id=b.id   and   a.xtype=c.xtype  
  and   b.name='pinpai' and c.name<>'sysname'

 

方法二:(推荐使用:此种方法不能查出基本类型的宽度 例 int ,datetime 结果为 null)
select
Column_name, data_type,character_maximum_length,character_octet_length
from INFORMATION_SCHEMA.COLUMNS where table_name='you tablename'


方法三:(也可以使用的)
(网友:331388002 提供)
select  a.name as 'name',b.name as 'type'
from syscolumns a ,systypes b
where a.xtype =b.xtype and a.id=object_id('blog') and b.name!='sysname'

 

另外一点补充说明:

还有如果在定义的时候用 max 的话 那么取出的是-1,

你可能感兴趣的:(sql 查找表中定义的列宽)