zoukankan      html  css  js  c++  java
  • sp_MSforeachdb&sp_MSforeachtable&sp_MSforeachobject&查看某个对象的依赖对象

    --查看某个对象的依赖对象
    EXEC sp_MSforeachdb 'use ? ; 
    IF EXISTS(SELECT top 1 1 FROM sys.syscomments WHERE text LIKE ''%test%'')
    SELECT ''?'' as dbname,object_name(id) as object FROM sys.syscomments 
    WHERE text LIKE ''%test%'''
    
    
    --统计数据库里每个表的详细情况
    exec sp_MSforeachtable 'sp_spaceused ''?''' 
    --获得每个表的记录数和容量
    exec sp_MSforeachtable 'select ''?''','?', 'sp_spaceused ''?''', 'SELECT count(*) FROM ? ' 
    --获得所有的数据库的存储空间
    exec sp_MSforeachdb  'select  ''?''','?','sp_spaceused '
    
    --更新PUBS数据库中已t开头的所有表的统计
    exec sp_MSforeachtable
           'print ''*'' update statistics * ',
           '*',
           null,
           null,
           ' and o.name like ''t%''',
           'print ''Updating Statistics.....''',
           'print ''Complete Update Statistics!''' 
    ----检查所有的数据库
    exec sp_MSforeachdb  'print ''?'' DBCC CHECKDB (?)'
    --删除当前数据库所有表中的数据
    --exec sp_MSforeachtable 'Delete from ?'
    --exec sp_MSforeachtable 'Truncate Table ?'
    --更新Table1/Table2中note列为NULL的值
    exec sp_MSforeachtable @command1='Update ? Set note='''' Where note is null', @whereand=' AND o.name in (''Table1'',''Table2'') '
    
    exec sp_MSforeachObject 4,'sp_helptext ''?'''
    exec sp_MSforeachObject 1,'sp_changeobjectowner ''?'', ''dbo'''  --当然这个可以应用sp_MSforeachtable 来完成
    
    
    /*
    Create proc sp_MSforeachdb
        @command1 nvarchar(2000), 
        @replacechar nchar(1) = N'?', 
        @command2 nvarchar(2000) = null, 
        @command3 nvarchar(2000) = null,
        @precommand nvarchar(2000) = null, 
        @postcommand nvarchar(2000) = null
    as
    */
    
    /*
    create proc sp_MSforeachtable
        @command1 nvarchar(2000),             --第一条运行的T-SQL
        @replacechar nchar(1) = N'?',          --指定的占位符
        @command2 nvarchar(2000) = null,      --第二条运行的T-SQL   
        @command3 nvarchar(2000) = null,      --第三条运行的T-SQL
        @whereand nvarchar(2000) = null,      --表的选择条件
        @precommand nvarchar(2000) = null,    --在表前执行的指令
        @postcommand nvarchar(2000) = null    --在表后执行的指令
    as
    
    */
    View Code

     以上有关sp_MSforeachdb和sp_MSforeachtable都是sqlserver自带的,以上脚本中只是为了方便执行时添加对应参数,只是将参数列表列出,如果有想看这两个procedure详细脚本,大家可以sp_helptext一下就可以看到了

    sp_MSforeachObject不是sqlserver自带的,需要自己创建上去。

    具体脚本可以从以下链接中获取,本文也基本是参考以下链接

    --http://www.cnblogs.com/piaoqingsong/archive/2007/06/12/780290.html

    以上是自己学习过程的整理,如有任何问题希望大家能够留言跟我一起讨论

  • 相关阅读:
    使用 yo 命令行向导给 SAP UI5 应用添加一个新的视图
    SAP Fiori Elements 应用的 manifest.json 文件运行时如何被解析的
    SAP UI5 标准应用的多语言支持
    微软 Excel 365 里如何设置下拉菜单和自动高亮成指定颜色
    SAP Fiori Elements 应用里的 Title 显示的内容是从哪里来的
    本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?
    如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
    教你一招:让集群慢节点无处可藏
    应用架构步入“无服务器”时代 Serverless技术迎来新发展
    MySQL数据库事务隔离性的实现
  • 原文地址:https://www.cnblogs.com/shihuai355/p/3966738.html
Copyright © 2011-2022 走看看