zoukankan      html  css  js  c++  java
  • 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查找与表关联的存储过程的结果为:

     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 b
    ON a.object_id = b.object_id
    WHERE b.type = 'V' 
    AND a.definition LIKE '%'+@KeyWord+'%'
    
    

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

     通过表名查找视图.png

    文章来源

    本文来源于[快乐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查找与表关联的存储过程的结果为: 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 b
    ON a.object_id = b.object_id
    WHERE b.type = 'V' 
    AND a.definition LIKE '%'+@KeyWord+'%'
    
    

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

    文章来源

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

  • 相关阅读:
    atitit.nfc 身份证 银行卡 芯片卡 解决方案 attilax总结
    atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
    Atitit.执行cmd 命令行 php
    Atitit. 图像处理jpg图片的压缩 清理垃圾图片 java版本
    atitit。企业组织与软件工程的策略 战略 趋势 原则 attilax 大总结
    atitit. 管理哲学 大毁灭 如何防止企业的自我毁灭
    Atitit.java的浏览器插件技术 Applet japplet attilax总结
    Atitit.jquery 版本新特性attilax总结
    Atitit. 软件开发中的管理哲学一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
    (转)获取手机的IMEI号
  • 原文地址:https://www.cnblogs.com/samlin/p/13912306.html
Copyright © 2011-2022 走看看