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 ...
随机推荐
- 2023-05 多校联合训练 ZJNU站 正式赛
Scarlett的三元组 有一个长度为 \(n\) 的序列 \(a_1,a_2,\cdots,a_n\),试问有多少个三元组 \((a_i,a_j,a_k)\) 满足: \(1 \le i \lt j ...
- jackson 中对 null 的处理
前情提要: 在项目中如何将null值转变为空字符串呢? @Configuration public class JacksonConfig { @Bean @Primary @ConditionalO ...
- JDK 18 及以上使用标准输出流中文输出乱码问题
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 链接:https://stazxr.cn/2024/12/05/JDK-18-以上使用标准输出流中文输出乱码问题/ 来源:終わり ...
- StarBlog博客Vue前端开发笔记:(1)准备篇
前言 之前在[基于.NetCore 开发博客项目 StarBlog - (32) 第一期完结]里说到 StarBlog 的 Vue 前端系列已经写好了 本来打算后面再发的,不过最近有点懒没去写新的文章 ...
- 升级到 .NET Core 3.1
微软升级的频率有点快,转眼 .NET Core 升级到 3.1 版了,这是一个长期支持版本,意味着 .NET Core 正式进入成熟期. 不过,对于开发人员来说,你的项目又需要迁移了. 升级项目文件 ...
- 使用terraform管理Proxmox VE资源
terraform-proxmox 使用terraform管理proxmox资源 Using terraform to manage proxmox resources env: Proxmox VE ...
- blender low poly + unity 3d游戏制作
会是一个有趣的方向,适合独立游戏制作人,独立动画电影制作人.
- 在docker中使用主机串口通讯
在进行软件docker化的过程时,很大的一个阻碍就是软件与各种外围硬件设备的交互,网口通信的设备能够很容易地接入容器,但是串口设备则要复杂一些.本文讨论在windows和linux下docker容器使 ...
- JunitGenerator
######################################################################################## ## ## Avail ...
- 时间轮在 Netty , Kafka 中的设计与实现
本文基于 Netty 4.1.112.Final , Kafka 3.9.0 版本进行讨论 在业务开发的场景中,我们经常会遇到很多定时任务的需求.比如,生成业务报表,周期性对账,同步数据,订单支付超时 ...