微软的sql2005中如何用SQL语句查询出将一个表的字段的说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软的sql2005中如何用SQL语句查询出将一个表的字段的说明相关的知识,希望对你有一定的参考价值。

查询列信息的
--isnull函数:需要个参数,如果第一个参数为空,则赋值第二个参数。
SELECT
--空格代表as关键字
(case when a.colorder=1 then d.name else '' end) 表名,a.colorder 字段序号,a.name 字段名,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
(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 'true' else 'false' end) 主键,b.name 类型,
a.length 占用字节数, COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,
(case when a.isnullable=1 then 'true'else 'false' end) 允许空,
isnull(e.text,'') 默认值, isnull(g.[value],'') AS 字段说明
--a代表列集合表:为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行
--b代表列类型表:为数据库中定义的每种系统提供的数据类型和每种用户定义的数据类型返回一行。
FROM syscolumns a left join systypes b
on a.xtype=b.xusertype
--d代表对象表:在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
--e代表e.text是默认值:包含数据库中每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项
left join syscomments e
on a.cdefault=e.id
--g代表g.[value]是字段说明:针对当前数据库中的每个扩展属性返回一行。
left join sys.extended_properties g
on a.id=g.major_id AND a.colid = g.major_id
order by a.id,a.colorder
参考技术A sp_help 表名追问

这个不行,没有说明的这个字段显示

追答

SELECT
a.colorder AS 字段序号, a.name AS 字段名, ISNULL(c.[value], '') AS 字段说明
FROM dbo.syscolumns a LEFT OUTER JOIN
dbo.sysobjects b ON a.id = b.id AND b.xtype = 'U' AND
b.status >= 0 LEFT OUTER JOIN
sys.extended_properties c ON a.id = c.major_id AND a.colid = c.minor_id AND
c.name = 'MS_Description'
WHERE b.name=N'表名'

SQL SERVER 中如何用脚本管理作业

 在SQL SERVER中用脚本管理作业,在绝大部分场景下,脚本都比UI界面管理作业要高效、简洁。打个简单的比方,如果你要查看作业的运行时长,如果用UI界面查看,100个作业,你就得在历史记录里面至少查看一百次甚至更多,还要记录、统计作业各个步骤的执行时间。而用脚本,一个查询就OK了。这篇文章分享一些我在数据库管理过程中积累的一些常用脚本 如有不足或需要完善的地方,也请多多指教。

 

1:业务场景:你想了解一下所有作业的Schedule信息,方便你作出调整或分析。例如作业的执行频率;例如你想查询那些作业是一小时执行一次的,那些是间隔几分钟执行一次的,使用下面脚本来查看吧。

DECLARE @ManyTimes TABLE
(
    freq_relative_interval INT,
    times  NVARCHAR(12)
)
INSERT INTO @ManyTimes
SELECT 1  ,N\'第一个\' UNION ALL
SELECT 2  ,N\'第二个\' UNION ALL
SELECT 4  ,N\'第三个\' UNION ALL
SELECT 8  ,N\'第四个\' UNION ALL
SELECT 16 ,N\'最后一个\'
 
DECLARE @WeekDays TABLE
(
    freq_interval    INT,
    weekdays        NVARCHAR(120)
 
)
 
INSERT INTO @WeekDays
SELECT 1    ,N\'星期日               \'  UNION ALL
SELECT 2    ,N\'星期一               \'  UNION ALL
SELECT 4    ,N\'星期二               \'  UNION ALL
SELECT 8    ,N\'星期三               \'  UNION ALL
SELECT 16   ,N\'星期四               \'  UNION ALL
SELECT 32   ,N\'星期五               \'  UNION ALL
SELECT 64   ,N\'星期六               \'  UNION ALL
SELECT 3    ,N\'星期日,一            \'  UNION ALL
SELECT 5    ,N\'星期日,二            \'  UNION ALL
SELECT 9    ,N\'星期日,三            \'  UNION ALL
SELECT 17   ,N\'星期日,四            \'  UNION ALL
SELECT 33   ,N\'星期日,五            \'  UNION ALL
SELECT 65   ,N\'星期日,六            \'  UNION ALL
SELECT 6    ,N\'星期一,二            \'  UNION ALL
SELECT 10   ,N\'星期一,三            \'  UNION ALL
SELECT 18   ,N\'星期一,四            \'  UNION ALL
SELECT 34   ,N\'星期一,五            \'  UNION ALL
SELECT 66   ,N\'星期一,六            \'  UNION ALL
SELECT 12   ,N\'星期二,三            \'  UNION ALL
SELECT 20   ,N\'星期二,四            \'  UNION ALL
SELECT 36   ,N\'星期二,五            \'  UNION ALL
SELECT 68   ,N\'星期二,六            \'  UNION ALL
SELECT 24   ,N\'星期三,四            \'  UNION ALL
SELECT 40   ,N\'星期三,五            \'  UNION ALL
SELECT 72   ,N\'星期三,六            \'  UNION ALL
SELECT 48   ,N\'星期四,五            \'  UNION ALL
SELECT 80   ,N\'星期四,六            \'  UNION ALL
SELECT 96   ,N\'星期五,六            \'  UNION ALL
SELECT 7    ,N\'星期日,一,二         \'  UNION ALL
SELECT 11   ,N\'星期日,一,三         \'  UNION ALL
SELECT 19   ,N\'星期日,一,四         \'  UNION ALL
SELECT 35   ,N\'星期日,一,五         \'  UNION ALL
SELECT 67   ,N\'星期日,一,六         \'  UNION ALL
SELECT 13   ,N\'星期日,二,三         \'  UNION ALL
SELECT 21   ,N\'星期日,二,四         \'  UNION ALL
SELECT 37   ,N\'星期日,二,五         \'  UNION ALL
SELECT 69   ,N\'星期日,二,六         \'  UNION ALL
SELECT 25   ,N\'星期日,三,四         \'  UNION ALL
SELECT 41   ,N\'星期日,三,五         \'  UNION ALL
SELECT 73   ,N\'星期日,三,六         \'  UNION ALL
SELECT 49   ,N\'星期日,四,五         \'  UNION ALL
SELECT 81   ,N\'星期日,四,六         \'  UNION ALL
SELECT 97   ,N\'星期日,五,六         \'  UNION ALL
SELECT 14   ,N\'星期一,二,三         \'  UNION ALL
SELECT 22   ,N\'星期一,二,四         \'  UNION ALL
SELECT 38   ,N\'星期一,二,五         \'  UNION ALL
SELECT 70   ,N\'星期一,二,六         \'  UNION ALL
SELECT 26   ,N\'星期一,三,四         \'  UNION ALL
SELECT 42   ,N\'星期一,三,五         \'  UNION ALL
SELECT 74   ,N\'星期一,三,六         \'  UNION ALL
SELECT 50   ,N\'星期一,四,五         \'  UNION ALL
SELECT 82   ,N\'星期一,四,六         \'  UNION ALL
SELECT 98   ,N\'星期一,五,六         \'  UNION ALL
SELECT 28   ,N\'星期二,三,四         \'  UNION ALL
SELECT 44   ,N\'星期二,三,五         \'  UNION ALL
SELECT 76   ,N\'星期二,三,六         \'  UNION ALL
SELECT 52   ,N\'星期二,四,五         \'  UNION ALL
SELECT 84   ,N\'星期二,四,六         \'  UNION ALL
SELECT 100  ,N\'星期二,五,六         \'  UNION ALL
SELECT 56   ,N\'星期三,四,五         \'  UNION ALL
SELECT 88   ,N\'星期三,四,六         \'  UNION ALL
SELECT 104  ,N\'星期三,五,六         \'  UNION ALL
SELECT 112  ,N\'星期四,五,六         \'  UNION ALL
SELECT 15   ,N\'星期日,一,二,三      \'  UNION ALL
SELECT 23   ,N\'星期日,一,二,四      \'  UNION ALL
SELECT 39   ,N\'星期日,一,二,五      \'  UNION ALL
SELECT 71   ,N\'星期日,一,二,六      \'  UNION ALL
SELECT 27   ,N\'星期日,一,三,四      \'  UNION ALL
SELECT 43   ,N\'星期日,一,三,五      \'  UNION ALL
SELECT 75   ,N\'星期日,一,三,六      \'  UNION ALL
SELECT 51   ,N\'星期日,一,四,五      \'  UNION ALL
SELECT 83   ,N\'星期日,一,四,六      \'  UNION ALL
SELECT 99   ,N\'星期日,一,五,六      \'  UNION ALL
SELECT 29   ,N\'星期日,二,三,四      \'  UNION ALL
SELECT 45   ,N\'星期日,二,三,五      \'  UNION ALL
SELECT 77   ,N\'星期日,二,三,六      \'  UNION ALL
SELECT 53   ,N\'星期日,二,四,五      \'  UNION ALL
SELECT 85   ,N\'星期日,二,四,六      \'  UNION ALL
SELECT 101  ,N\'星期日,二,五,六      \'  UNION ALL
SELECT 57   ,N\'星期日,三,四,五      \'  UNION ALL
SELECT 89   ,N\'星期日,三,四,六      \'  UNION ALL
SELECT 105  ,N\'星期日,三,五,六      \'  UNION ALL
SELECT 113  ,N\'星期日,四,五,六      \'  UNION ALL
SELECT 30   ,N\'星期一,二,三,四      \'  UNION ALL
SELECT 46   ,N\'星期一,二,三,五      \'  UNION ALL
SELECT 78   ,N\'星期一,二,三,六      \'  UNION ALL
SELECT 54   ,N\'星期一,二,四,五      \'  UNION ALL
SELECT 86   ,N\'星期一,二,四,六      \'  UNION ALL
SELECT 102  ,N\'星期一,二,五,六      \'  UNION ALL
SELECT 58   ,N\'星期一,三,四,五      \'  UNION ALL
SELECT 90   ,N\'星期一,三,四,六      \'  UNION ALL
SELECT 106  ,N\'星期一,三,五,六      \'  UNION ALL
SELECT 114  ,N\'星期一,四,五,六      \'  UNION ALL
SELECT 60   ,N\'星期二,三,四,五      \'  UNION ALL
SELECT 92   ,N\'星期二,三,四,六      \'  UNION ALL
SELECT 108  ,N\'星期二,三,五,六      \'  UNION ALL
SELECT 116  ,N\'星期二,四,五,六      \'  UNION ALL
SELECT 120  ,N\'星期三,四,五,六      \'  UNION ALL
SELECT 31   ,N\'星期日,一,二,三,四   \'  UNION ALL
SELECT 47   ,N\'星期日,一,二,三,五   \'  UNION ALL
SELECT 79   ,N\'星期日,一,二,三,六   \'  UNION ALL
SELECT 55   ,N\'星期日,一,二,四,五   \'  UNION ALL
SELECT 87   ,N\'星期日,一,二,四,六   \'  UNION ALL
SELECT 103  ,N\'星期日,一,二,五,六   \'  UNION ALL
SELECT 59   ,N\'星期日,一,三,四,五   \'  UNION ALL
SELECT 91   ,N\'星期日,一,三,四,六   \'  UNION ALL
SELECT 107  ,N\'星期日,一,三,五,六   \'  UNION ALL
SELECT 115  ,N\'星期日,一,四,五,六   \'  UNION ALL
SELECT 61   ,N\'星期日,二,三,四,五   \'  UNION ALL
SELECT 93   ,N\'星期日,二,三,四,六   \'  UNION ALL
SELECT 109  ,N\'星期日,二,三,五,六   \'  UNION ALL
SELECT 117  ,N\'星期日,二,四,五,六   \'  UNION ALL
SELECT 121  ,N\'星期日,三,四,五,六   \'  UNION ALL
SELECT 62   ,N\'星期一,二,三,四,五   \'  UNION ALL
SELECT 94   ,N\'星期一,二,三,四,六   \'  UNION ALL
SELECT 110  ,N\'星期一,二,三,五,六   \'  UNION ALL
SELECT 118  ,N\'星期一,二,四,五,六   \'  UNION ALL
SELECT 122  ,N\'星期一,三,四,五,六   \'  UNION ALL
SELECT 124  ,N\'星期二,三,四,五,六   \'  UNION ALL
SELECT 63   ,N\'星期日,一,二,三,四,五\'  UNION ALL
SELECT 95   ,N\'星期日,一,二,三,四,六\'  UNION ALL
SELECT 111  ,N\'星期日,一,二,三,五,六\'  UNION ALL
SELECT 119  ,N\'星期日,一,二,四,五,六\'  UNION ALL
SELECT 123  ,N\'星期日,一,三,四,五,六\'  UNION ALL
SELECT 125  ,N\'星期日,二,三,四,五,六\'  UNION ALL
SELECT 126  ,N\'星期一,二,三,四,五,六\'  UNION ALL
SELECT 127  ,N\'星期日,一,二,三,四,五,六\';      
 
SELECT  d.job_id                                    AS job_id    ,
        j.name                                        AS job_name ,
        CASE WHEN j.enabled =1  THEN N\'启用\' 
             ELSE N\'禁用\' END                        AS job_staus,
        CASE WHEN freq_type=1    THEN N\'运行一次\'
             WHEN freq_type=4    THEN N\'每天执行\'
             WHEN freq_type=8    THEN N\'每周执行\'
             WHEN freq_type=16    THEN N\'每月执行\'
             WHEN freq_type=32    THEN N\'每月执行\'
             WHEN freq_type=64    THEN N\'代理服务启动时运行\'
             WHEN freq_type=128 THEN N\'在计算机空闲时运行\'
        END                                            AS  freq_type,
        CASE WHEN freq_type=1    THEN  N\'选项无意义\'
             WHEN freq_type=4    THEN 
                (
                 CASE WHEN freq_subday_type=4     
                      THEN  N\'每隔\' +  CONVERT(NVARCHAR(4),freq_subday_interval) +N\'分钟执行一次\' 
                 WHEN freq_subday_type=8 
                      THEN  N\'每隔\' +  CONVERT(NVARCHAR(4),freq_subday_interval) +N\'小时执行一次\'
                 ELSE         N\'每天执行\'+ CONVERT(NVARCHAR(4),freq_interval)  + N\'\' 
                 END
                 )
             WHEN freq_type=8    THEN 
                ( SELECT w.weekdays FROM   @WeekDays w WHERE w.freq_interval= s.freq_interval
                 )
                                    
             WHEN freq_type=16  THEN  N\'每月\' +  CONVERT(NVARCHAR(4),freq_interval)     + N\'号执行\'
             WHEN freq_type=32  sql 中如何用别名作为查询条件

sql查询中如何用group by查询出完整的一行记录?

sql语句中如何用 EXISTS 引入子查询?没有exists引入子查询时怎样实现子查询?

oracle数据库中如何用sql语句查出重复字段以及如何删除?

在oracle中如何用sql语句计算一段时间中的星期六和星期天的天数?请大侠赐教!急求!!!!!!!!!!!

在试听中如何用SQL选中从表选取所有列