设为首页收藏本站
查看: 336|回复: 2

[其它] mssql常用系统级查询2

[复制链接]
  • TA的每日心情
    无聊
    昨天 21:28
  • 签到天数: 127 天

    [LV.7]常住居民III

    发表于 2020-4-24 10:38:42 | 显示全部楼层 |阅读模式
    mssql常用系统级查询
      
    1、查询数据库中的所有表名称:

    SELECT name FROM SysObjects Where XType='U' ORDER BY Name



    2、查询数据库中指定表的表结构:

    --快速查看表结构

    SELECT CASE WHEN col.colorder = 1 THEN obj.name

                     ELSE ''

                END AS 表名,

           col.colorder AS 序号 ,

           col.name AS 列名 ,

           ISNULL(ep.[value], '') AS 列说明 ,

           t.name AS 数据类型 ,

           col.length AS 长度 ,

           ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小数位数 ,

           CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN'1'

                ELSE ''

           END AS 标识 ,

           CASE WHEN EXISTS ( SELECT   1

                             FROM     dbo.sysindexes si

                                      INNER JOIN dbo.sysindexkeys sik ON si.id =sik.id

                                                               AND si.indid = sik.indid

                                      INNER JOIN dbo.syscolumns sc ON sc.id =sik.id

                                                               AND sc.colid = sik.colid

                                      INNER JOIN dbo.sysobjects so ON so.name =si.name

                                                               AND so.xtype = 'PK'

                             WHERE    sc.id = col.id

                                      AND sc.colid = col.colid ) THEN '1'

                ELSE ''

           END AS 主键 ,

           CASE WHEN col.isnullable = 1 THEN '1'

                ELSE ''

           END AS 允许空 ,

           ISNULL(comm.text, '') AS 默认值

    FROM   dbo.syscolumns col

           LEFT  JOIN dbo.systypes t ON col.xtype = t.xusertype

           inner JOIN dbo.sysobjects obj ON col.id = obj.id

                                           AND obj.xtype = 'U'

                                           AND obj.status >= 0

           LEFT  JOIN dbo.syscomments comm ON col.cdefault = comm.id

           LEFT  JOIN sys.extended_properties ep ON col.id =ep.major_id

                                                       AND col.colid = ep.minor_id

                                                       AND ep.name = 'MS_Description'

           LEFT  JOIN sys.extended_properties epTwo ON obj.id =epTwo.major_id

                                                          AND epTwo.minor_id = 0

                                                          AND epTwo.name = 'MS_Description'

    WHERE  obj.name = 'PkAutoInc'--表名

    ORDER BY col.colorder ;


    /*1.查询SQLSERVER中的所有数据库*/

    use master

    go

    select * fromsysdatabases where dbid>4/*where条件用来去掉系统数据库*/

    go

    /*2.查询SQLSERVER中的所有数据库(存储过程)*/

    exec sp_helpdb

    /*3.查询指定数据库中的表*/

    use 数据库名

    go

    select * fromsysobjects where xtype='u'/*where条件用来去掉系统表*/

    go

    [删除字段]

    alter table tb_commonLog --表名

            drop

            column l_test,--去掉字段1

            columnl_test2, --去掉字段2

            constraintpk_name --去掉主键

    go



    use data;

    SELECT tb2.name AS tableName,tb1.name AStriggerName FROM Sysobjects tb1

    JOIN Sysobjects tb2 ON tb1.parent_obj=tb2.idWHERE tb1.type='TR'; --查触发器

    SELECT name FROM  sys.all_objectsWHERE  type_desc = N'SQL_STORED_PROCEDURE' and substring(name,1,3) notin('sp_','xp_'); --查存储过程

    exec sp_helptext '客户应收账表因其修改'; -- 查内容

    select * from sys.procedures where substring(name,1,3) not in('sp_');--查存储过程



    SELECT * FROM  sys.all_objects wheretype='FN' and name not like 'fn_%' ;--查函数
    查库所有表



    use data

    go

    select * from sys.tables


    --查询数据库所有连接进程

    select * from (SELECT * FROMmaster.dbo.sysprocesses WHERE dbid IN

    (

      SELECT dbid FROMmaster.dbo.sysdatabases

      WHERE NAME='DATA' --指定的数据库名字

    )) AA inner join

    (SELECT S.SPID, S.LOGINAME, S.LOGIN_TIME,S.LAST_BATCH, C.CLIENT_NET_ADDRESS   

    FROM sys.sysprocesses S,sys.dm_exec_connections C   

    WHERE S.spid = C.SESSION_ID)BB on AA.spid=BB.spid

    --判断游标是否存在

    if exists(select * fromMASTER.dbo.syscursors where cursor_name='youbiao')

    begin

    deallocate youbiao

    end
    ;
    --查看死锁
    SELECT [session_id] ,
          [blocking_session_id] AS '正在阻塞其他会话的会话ID' ,
          DB_NAME ( [database_id] ) AS '数据库名称' ,
          [request_id] ,
          [cpu_time] ,
          [start_time] AS '开始时间' ,
          [status] AS '状态' ,
          [command] AS '命令' ,
          dest.[text] AS '语句' ,
          [reads] AS '物理读次数' ,
          [writes] AS '写次数' ,
          [logical_reads] AS '逻辑读次数' ,
          [row_count] AS '返回结果行数' ,
          [wait_type] AS '等待资源类型' ,
          [wait_time] AS '等待时间' ,
          [wait_resource] AS '等待的资源'
    FROM sys.[dm_exec_requests] AS der
        CROSS APPLY sys.[dm_exec_sql_text] ( der.[sql_handle] ) AS dest
    WHERE 1 = 1
    ORDER BY [session_id] DESC

    ----------查看作业
    --SELECT * FROM sysjobs_view

    --SELECT * FROM sysjobservers

    --SELECT * FROM sysjobsteps

    SELECT Jobs.name AS '作业名称' ,
           CASE Jobs.enabled
                WHEN 1 THEN '启用'
                WHEN 0 THEN '未启用'
           END AS '是否启用',
           Jobs.description AS '描述信息',
           Jobs.date_created AS '创建日期',
           Jobs.date_modified AS '修改日期',
           Steps.command AS '作业内容',
           CASE Schedules.freq_type
                WHEN 1 THEN '只运行一次'
                WHEN 4 THEN '每天'
                WHEN 8 THEN '每周'
                WHEN 16 THEN '每月'
                WHEN 32 THEN '每月'
                WHEN 64 THEN '在代理服务启动时运行'
                WHEN 128 THEN '在服务器空闲时运行'
           END AS '频率',
           CASE Schedules.freq_type
                WHEN 1 THEN '只运行一次'
                WHEN 4 THEN '每' + CAST(Schedules.freq_interval AS VARCHAR (10)) + '天'
                WHEN 8 THEN '每周' + ( CASE freq_interval
                                          WHEN 1 THEN '星期日'
                                          WHEN 2 THEN '星期一'
                                          WHEN 4 THEN '星期二'
                                          WHEN 8 THEN '星期三'
                                          WHEN 16 THEN '星期四'
                                          WHEN 32 THEN '星期五'
                                          WHEN 64 THEN '星期六'
                                     END )
                WHEN 16 THEN '每月' + CAST(Schedules.freq_interval AS VARCHAR (10)) + '日'
                WHEN 32 THEN '每月' + ( CASE freq_interval
                                           WHEN 1 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '个星期日'
                                           WHEN 2 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '星期一'
                                           WHEN 3 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '星期二'
                                           WHEN 4 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '星期三'
                                           WHEN 5 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '星期四'
                                           WHEN 6 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '星期五'
                                           WHEN 7 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '星期六'
                                           WHEN 8 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一'
                                                         END ) + '天'
                                           WHEN 9 THEN ( CASE freq_relative_interval
                                                              WHEN 1 THEN '第一'
                                                              WHEN 2 THEN '第二'
                                                              WHEN 4 THEN '第三'
                                                              WHEN 8 THEN '第四'
                                                              WHEN 16 THEN '最后一个'
                                                         END ) + '工作日'
                                           WHEN 10 THEN ( CASE freq_relative_interval
                                                               WHEN 1 THEN '第一'
                                                               WHEN 2 THEN '第二'
                                                               WHEN 4 THEN '第三'
                                                               WHEN 8 THEN '第四'
                                                               WHEN 16 THEN '最后一个'
                                                          END ) + '休息日'
                                      END )
           END AS '间隔天数',
           CASE freq_subday_type
                WHEN 1 THEN '指定时间'
                WHEN 2 THEN '每隔' + CAST(freq_subday_interval AS VARCHAR (10)) + '秒'
                WHEN 4 THEN '每隔' + CAST(freq_subday_interval AS VARCHAR (10)) + '分钟'
                WHEN 8 THEN '每隔' + CAST(freq_subday_interval AS VARCHAR (10)) + '小时'
           END AS '间隔时间',
           DATEADD (
             HOUR ,
             ( active_start_time / 10000 ) % 100,
             DATEADD ( MINUTE, ( active_start_time / 100 ) % 100, DATEADD ( SECOND, ( active_start_time / 1 ) % 100, CAST('00:00:00' AS TIME (0))))) AS '开始执行时间',
           DATEADD (
             HOUR ,
             ( active_end_time / 10000 ) % 100,
             DATEADD ( MINUTE, ( active_end_time / 100 ) % 100, DATEADD ( SECOND, ( active_end_time / 1 ) % 100, CAST('00:00:00' AS TIME (0))))) AS '截止时间',
           CONVERT ( DATE, CAST(active_start_date AS VARCHAR (20)), 23 ) AS '开始日期',
           CONVERT ( DATE, CAST(active_end_date AS VARCHAR (20)), 23 ) AS '截止日期'
    FROM sysjobs Jobs
         JOIN sysjobschedules JobsSchedules ON Jobs.job_id = JobsSchedules.job_id
         JOIN sysschedules Schedules ON JobsSchedules.schedule_id = Schedules.schedule_id
         JOIN sysjobsteps Steps ON Jobs.job_id = Steps.job_id
  • TA的每日心情
    开心
    2020-7-3 09:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-6-29 19:26:07 来自手机 | 显示全部楼层
    收藏了 感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    3 天前
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2020-6-30 11:51:13 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐 上一条 /3 下一条

    红盟社区--中国红客联盟 

    Processed in 0.074098 second(s), 16 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    Powered by HUC © 2001-2017 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表