sql server 查询列名,列数据类型,列长度 sql语句怎么写

 我来答
greystar_cn
推荐于2018-05-15 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
SQL 2005及以上版本,执行如下,可获取字段及相关属性值

SELECT a.name 字段名 ,
COLUMNPROPERTY(a.id, a.name, 'IsIdentity') 标识 ,
( 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 '1'
ELSE '0'
END ) 主键 ,
b.name 类型 ,
COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度 ,
ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数 ,
( CASE WHEN a.isnullable = 1 THEN '1'
ELSE '0'
END ) 允许空 ,
ISNULL(g.[value], '') AS 字段说明
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 sys.extended_properties g ON a.id = g.major_id
AND a.colid = g.minor_id
WHERE d.name = 'AA_AppFile'
ORDER BY a.id ,
a.colorder

注:sql2000版本中,需要使用sysproperties来代替sys.extended_properties。
匿名用户
2014-11-13
展开全部
seselect 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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelvis
2014-11-13 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:840万
展开全部

列信息都在sys.all_columns表中,直接查询

select * from sys.all_columns
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happy天涯浪客
2014-11-13 · 超过20用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:29.1万
展开全部
desc 表名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式