sql 怎么查询字段的数据类型

返回的是建表时输入的样子即:aaanvchar(50)bbbintcccdatedddbiteeechar(50)... 返回的是建表时输入的样子
即:
aaa nvchar(50)
bbb int
ccc date
ddd bit
eee char(50)
展开
 我来答
匿名用户
2014-12-05
展开全部
select b.name as tablename,a.name as columnname,c.name as typename,a.max_length as typelength 

from sys.columns a inner join sys.tables b on b.object_id=a.object_id 

inner join sys.types c on c.system_type_id=a.system_type_id 

where b.name='表名'

order by b.name,a.column_id
追问
我想你误会我的意思了,建表的时候int、bit等类型是不需要长度的,
我希望查询出来的int、bit等类型也不带长度,
至于char,nvchar等需要定义长度的就要连长度也查询出来,
而且最好显示在一个字段里
输出格式就像提问中写的那样,字段名一格,类型(长度)一格,
我知道这很麻烦,但没办法,设计需要,
想通过基于B/S结构的系统对数据库进行编辑,表、字段、记录的增删改查
追答
select a.name as columnname, typename=(case when c.name in('char','nvarhcar','varchar')

 then c.name+'('+rtrim(convert(char,a.max_length))+')' else c.name end) 

from sys.columns a inner join sys.tables b on b.object_id=a.object_id 

inner join sys.types c on c.system_type_id=a.system_type_id

where b.name='表'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式