mssql sqlserver 在存储过程中获取内容包含列名的方法分享


摘要:
刚刚接收一个项目,今天收到领导一个需求,获取数据库中存储过程内容中包含列”******”的存储过程的信息,
下文将讲述获取存储过程包含列信息的方法分享


方法1:
我们也通过遍历存储过程、视图、函数、其它使用sql脚本创建对象的内容,
通过检索对象内容中,是否包含指定列名来获取“存储过程包含指定列信息”。

SELECT OBJECT_NAME(OBJECT_ID) as [对象名称],
definition as [对象内sql]
FROM sys.sql_modules ---模块定义系统表
WHERE definition LIKE '%create%'
---检索对象内脚本包含create的对象名称
mssql_sqlserver_对象定义内容获取

mssql_sqlserver_对象定义内容获取


方法2:
我们可以搜索存储过程的系统表,然后通过检索存储过程的内容来获取指定列是否包含在存储过程中。

 SELECT DISTINCT OBJECT_NAME(OBJECT_ID) as [存储过程名称],
object_definition(OBJECT_ID) as [sqlText]
FROM sys.Procedures
WHERE object_definition(OBJECT_ID) LIKE '%create%'
---检索对象内脚本包含create的对象名称
mssql_sqlserver_存储过程内容获取方法

mssql_sqlserver_存储过程内容获取方法