SQL技巧:查询某个表关联的所有存储过程

关键字:#SQL技巧#

背景

在开发过程中,可能需要更改某一个表的数据结构,或者更新数据。但你又不太清楚会造成什么影响,迟迟不敢下手进行调整。笔者[快乐IT]最近在做ERP K3与OA蓝凌接口时就遇到了这个问题,那是否有办法知道我们所修改的Table有哪些存储过程引用了,哪些视图关联了即将要修改的表呢。

答案是肯定的,奉上代码:

DECLARE @KeyWord nvarchar(100)SET @KeyWord = 'ICStockBill' --设置需要搜索的关键词(如:表名,存储过程名,视图名等)SELECT b.name,a.definition FROM sys.all_sql_modules a INNER JOIN sys.objects bON a.object_id = b.object_idWHERE b.type = 'P' AND a.definition LIKE '%'+@KeyWord+'%'

SQL查找与表关联的存储过程的结果为:

SQL查找与表关联的存储过程.png

大家看到没有?我们即将修改的表[ICStockBill]竟然有91个存储过程引用了这个表,如果靠手工去查找是该是一项多么大的工程啊。但问题又来了,如何修改这表结构?谨慎的做法是:只能添加字段,不能修改字段。

扩展:如何查找与表关联的所有视图?

答案很简单,就是将type='P' 改成type='V'即可:

DECLARE @KeyWord nvarchar(100)SET @KeyWord = 'ICStockBill' --设置需要搜索的关键词(如:表名,存储过程名,视图名等)SELECT b.name,a.definition FROM sys.all_sql_modules a INNER JOIN sys.objects bON a.object_id = b.object_idWHERE b.type = 'V' AND a.definition LIKE '%'+@KeyWord+'%'

通过表名查找视图的结果为:

通过表名查找视图.png

文章来源

本文来源于[快乐IT],希望文章对您有帮助。

oracle关联表查询使用索引_SQL技巧:查询某个表关联的所有存储过程相关推荐

  1. mysql嵌套子查询索引_SQL 子查询,索引优化

    场景 索引优化 单列索引 多列索引 索引覆盖 排序 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course( c_id int PRIMARY KE ...

  2. mysql两张表联查更新语句_sql联合查询语句(两张表)

    展开全部 sql联合查询语句(两张e69da5e6ba9062616964757a686964616f31333365643662表)是: select A.ID,A.VALUE,A.TYPE,A.N ...

  3. sql查询两个表结果相减_sql子查询两个表的数据相减

    现有表atable和表btable,数据如下: table atable id    anumber 1       500 2       300 3       400 table btable ...

  4. mysql连表的sql语句_sql语句之连表操作

    内连接 select * from employee inner join department on employee.dep_id = department.id 左连接 在内连接的基础上保留左表 ...

  5. 强制MySQL查询走索引和强制查询不缓存

    有些情况下,表中创建了索引但是EXPLAIN的查看执行计划的时候发现并没有走索引.是因为优化器认为该语句不使用索引效率更好. 当然也可以强制走索引.类似: SELECT uid,uname FROM ...

  6. mysql语言中修改表结构的命令_sql语句中修改表结构的命令是什么

    SQL 语句中修改表结构的命令是ALTER TABLE. ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表 ...

  7. MySQL如何实现强制查询走索引和强制查询不缓存

    EXPLAIN的查询执行计划 A:强制走索引 SELECT uid, unameFROM table_nameforce index(ind_id); B:强制查询不缓存 SELECT SQL_NO_ ...

  8. mysql 查询空值列_SQL如何查询某行空值列的数量?

    展开全部 | 1 mysql 的话就如下,也62616964757a686964616fe59b9ee7ad9431333332616463没啥简单的办法:select isnull(A)+isnul ...

  9. mysql多表连接 索引_MySQL多表查询之外键、表连接、子查询、索引

    一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, ...

最新文章

  1. NSLog打印自定义对象
  2. spring boot socket长连接_springboot 整合阿里 druid 数据库连接池实战
  3. 【RxSwift 实践系列 2/3】thinking in Rx- Create和Drive
  4. 基于centos6的mysql5.7.13主从部署(一)
  5. Java开发面试问题,Java中高级核心知识全面解析(10)
  6. HDU 3062 Party
  7. windows mysql读写分离_windows下的MySql实现读写分离
  8. 全数字实时仿真平台SkyEye经典案例——空间站项目
  9. Vue2.x中的父组件数据传递至子组件
  10. django之视图函数
  11. jaxws-ri下载链接
  12. 最经济方案 谈P2P电影服务器
  13. kernel32.dll动态链接库报错解决方法win7,怎么修复kernel32.dll文件缺失
  14. Navicat Premium 12 破解
  15. java 刷题ide,力扣(LeetCode)刷题神器之Vs Code
  16. Nginx静态资源站点——Nginx虚拟主机
  17. 【王道考研】操作系统 笔记 第二章上 进程调度
  18. 【天梯赛练习题(c语言)】
  19. 青龙BOT机器人交互
  20. 通过css让鼠标变小手样式

热门文章

  1. 【mysql】解决MySQL GPG密钥过期问题
  2. mysql 类似plsql 软件_推荐一款PG数据库管理工具——pgadmin,一款类似PLSQL的工具...
  3. MySQL 成薪资跳板了?
  4. 小王,在 Java 中如何利用 redis 实现一个分布式锁服务呢???
  5. 【Vue-router中,require代替import解决vue项目首页加载时间过久】
  6. SpringBoot学习(五)
  7. Surface Pro电磁笔故障
  8. Python深度剖析贪吃蛇游戏的设计与实现
  9. MongoDB初试备份及恢复
  10. 拦截方法并替换成自己的方法