SQL技巧:查询某个表关联的所有存储过程
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 b
ON a.object_id = b.object_id
WHERE b.type = 'P'
AND a.definition LIKE '%'+@KeyWord+'%'
SQL查找与表关联的存储过程的结果为:

大家看到没有?我们即将修改的表[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 b
ON a.object_id = b.object_id
WHERE b.type = 'V'
AND a.definition LIKE '%'+@KeyWord+'%'
通过表名查找视图的结果为:

文章来源
本文来源于[快乐IT],希望文章对您有帮助。
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 b
ON a.object_id = b.object_id
WHERE b.type = 'P'
AND a.definition LIKE '%'+@KeyWord+'%'
SQL查找与表关联的存储过程的结果为: 
大家看到没有?我们即将修改的表[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 b
ON a.object_id = b.object_id
WHERE b.type = 'V'
AND a.definition LIKE '%'+@KeyWord+'%'
通过表名查找视图的结果为: 
文章来源
本文来源于[快乐IT],希望文章对您有帮助。
SQL技巧:查询某个表关联的所有存储过程的更多相关文章
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
Hibernate原生SQL查询多表关联,SQL语句要注意的问题 @for&ever 2009-9-4 系统环境: MySQL5.1 Hibernate3.3 有如下的假定: 实体类 Ques ...
- Oracle\MS SQL Server Update多表关联更新
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...
- SQL语句查询某表的所有字段及数据类型
SQL语句查询某表的所有字段及数据类型 SELECT name AS column_name , TYPE_NAME(system_type_id) AS column_type , max_leng ...
- [转]关于oracle sql语句查询时表名和字段名要加双引号的问题
oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引 ...
- sql server 查询某个表被哪些存储过程调用
sql server 查询某个表被哪些存储过程调用 select distinct object_name(id) from syscomments where id in (select id fr ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
- SQL Server 查询锁表和接锁表
SQL Server 查询锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) as tableNa ...
- mysql数据库-初始化sql建库建表-关联查询投影问题
下面是一个简易商城的几张表的创建方式 drop database if exists shop ; create database shop CHARACTER SET 'utf8' COLLATE ...
- 【SQL】在SQL Server中多表关联查询问题
好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...
- 序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
查询窗口中可以设置很多查询条件 表单中输入的内容转为datagrid的load方法所需的查询条件向原请求地址再次提出新的查询,将结果显示在datagrid中 转换方法看代码注释 <td cols ...
随机推荐
- PHP8新特性
PHP 8.1 提供的功能 枚举 Fiber(纤维) never 返回类型 readonly 属性 final 类常量 新的 array_is_list() 函数 新的 fsync() 和 fdata ...
- Python3.6,3.7,3.8版本对比
本文列举了Python3.6.3.7.3.8三个版本的新特性,学习它们有助于提高对Python的了解,跟上最新的潮流. 一.Python3.6新特性 1.新的格式化字符串方式 新的格式化字符串方式,即 ...
- spring 使用 事件机制
概述 在编写代码的时候,比如我删除一篇文章,这个时候,如果我想做些额外的逻辑,这是就需要修改删除部分的代码.spring 提供了事件机制更优雅的实现这个,用户只需要实现事件监听即可. 代码实现 注入发 ...
- OSG开发笔记(三十九):OSG中模型的透明度实现、球体透明度Demo
前言 在OSG中,对于一些效果未被选中或者包含等业务,需要半透明效果来实现. 本篇描述OSG的半透明实现方式. Demo 透明 功能概述 透明效果在三维场景中扮演着重要角色,它 ...
- 【Amadeus原创】docker安装TOMCAT,并运行本地代码
1,docker 下载tomcat [root@it-1c2d ~]# docker pull tomcat ... [root@it-1c2d ~]# docker images REPOSITOR ...
- blender low poly + unity 3d游戏制作
会是一个有趣的方向,适合独立游戏制作人,独立动画电影制作人.
- Redis 的DB多个数据库使用
Redis 自己安装默认提供了16个数据库. 每个数据库都有一个id, 从 0 开始,(0,15). 不同的数据库中数据隔离保存.我们可以通过修改redis的配置文件进行修改数据库的数量. /etc/ ...
- Qt/C++编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)
一.前言说明 将从网络摄像头拉流过来的视频流重新推流出去,是目前一个很常规的做法,尤其是推流到流媒体服务中心,这样流媒体服务中心就把散落在各个区域的监控摄像头集中起来统一管理,同时提供对外一致的访问接 ...
- java中基于swing库自定义分页组件
一个swing的分页组件,代码见附件. //用法如下: Class Test{ JTable table ; StatusBar statusBar ; Test(){ ...
- .Net程序员机会来了,微软官方新推出一个面向Windows开发者本地运行AI模型的开源工具
想要开发AI产品的.Net程序员机会来了,这个项目应该好好研究. 虽然说大模型基本都有提供网络API,但肯定没有直接使用本地模型速度快. 最近微软官方新推出AI Dev Gallery开源项目,可以帮 ...