今年在www.sqlservercentral.com看到一篇在SQL Server里查找相关的数据对象的文章.
里面介绍的过程FindObject_usp比较实用,推荐给大家。
今年在
www.sqlservercentral.com看到一篇在SQL Server里查找相关的数据对象的文章.
里面介绍的过程
FindObject_usp比较实用,推荐给大家。
调用FindObject_usp有两个参数:
@objname varchar(200) = Null,
@objtype varchar(20) = Null
@objtype类别说明:
CHECK C = CHECK 约束
Default D = 默认值或 DEFAULT 约束
FOREIGN KEY F = FOREIGN KEY 约束
Log L = 日志
Scalar function FN = 标量函数
Inlined table-function IF = 内嵌表函数
Stored procedure P = 存储过程
PRIMARY KEY PK = PRIMARY KEY 约束(类型是 K)
Replication filter stored procedure RF = 复制筛选存储过程
System table S = 系统表
Table function TF = 表函数
Trigger TR = 触发器
User table U = 用户表
UNIQUE constraint UQ = UNIQUE 约束(类型是 K)
View V = 视图
Extended stored procedure X = 扩展存储过程
使用方法举例:
在所有库下查找含字符串bak的全部数据对象
exec FindObject_usp '%bak%'
在所有库下查找含字符串bak的用户表
exec FindObject_usp '%bak%','User table'
在所有库下查找含字符串bak的存储过程
exec FindObject_usp '%bak%','Stored procedure'
用途:当某个表结构或者某个存储过程改变前,查找与之相关联的存储过程及其它数据对象。
还介绍一个过程
sp_Occurrences,它可以找到某字符串在可编程对象名出现的所有地方
使用方法举例:
use @database_name
exec sp_Occurrences 'bak'
在当前数据库下,查找出现'bak'字符串在可编程对象名出现的所有地方
这个sp_Occurrences过程只能在一个库下查找,如果想在所有库下查找,还需要做一些修改。