
SQL 2005及以上版本,执行如下,可获取字段及相关属性值
SELECT aname 字段名 ,
COLUMNPROPERTY(aid, aname, 'IsIdentity') 标识 ,
( CASE WHEN ( SELECT COUNT()
FROM sysobjects
WHERE ( name IN (
SELECT name
FROM sysindexes
WHERE ( id = aid )
AND ( indid IN (
SELECT indid
FROM sysindexkeys
WHERE ( id = aid )
AND ( colid IN (
SELECT
colid
FROM
syscolumns
WHERE
( id = aid )
AND ( name = aname ) ) ) ) ) ) )
AND ( xtype = 'PK' )
) > 0 THEN '1'
ELSE '0'
END ) 主键 ,
bname 类型 ,
COLUMNPROPERTY(aid, aname, 'PRECISION') AS 长度 ,
ISNULL(COLUMNPROPERTY(aid, aname, 'Scale'), 0) AS 小数位数 ,
( CASE WHEN aisnullable = 1 THEN '1'
ELSE '0'
END ) 允许空 ,
ISNULL(g[value], '') AS 字段说明
FROM syscolumns a
LEFT JOIN systypes b ON axtype = bxusertype
INNER JOIN sysobjects d ON aid = did
AND dxtype = 'U'
AND dname <> 'dtproperties'
LEFT JOIN syscomments e ON acdefault = eid
LEFT JOIN sysextended_properties g ON aid = gmajor_id
AND acolid = gminor_id
WHERE dname = 'AA_AppFile'
ORDER BY aid ,
acolorder
注:sql2000版本中,需要使用sysproperties来代替sysextended_properties。
select COLUMN_NAME from information_schemacolumns where table_name='b'
select count() from information_schemaCOLUMNS WHERE TABLE_SCHEMA='a' and table_name=‘b’
a是库名,b是表明
需要写存储过程拼sql。
create proc P
@YearMonth varchar(6) --年月
as
begin
Declare @SDate DateTime-本月第一天
Declare @EDate DateTime--本月最后一天
Declare @SumDate int --总天数
Declare @i int
Set @SDate=CAST(@YearMonth+'01' AS Datetime)
--在本月第一天的基础上加1个月 然后减一天 就是本月最后一天
Set @EDate=DateAdd(M,1,@SDate)-1
--计算出差一天数
Set @SumDate=DATEDIFF(D,@SDate,@EDate)
set @i = 0
while @i<@SumDate
begin
--凑sql 我就不写详细了 列名就是 @SDate+i
end
end
以上就是关于sql server 查询列名,列数据类型,列长度 sql语句怎么写全部的内容,包括:sql server 查询列名,列数据类型,列长度 sql语句怎么写、mysql 如何用sql语句查询表的所有列名、sql 获取某一月份内所有日期 作为列名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)