[SQL] 在SQL Server的检视(View)、预存进程(Stored Procedure)、纯量函数、数据表函数等,用sys.sysobjects与sys.syscomments搜寻关键字。
在SQL Server中搜寻关键字
想要搜寻特定关键字在SQL Server的检视(View)、预存进程(Stored Procedure)、纯量函数、数据表函数..等是否存在时。
使用sys.sysobjcets与sys.syscomments搜寻,SQL语法如下:
SELECT *
FROM sys.sysobjects
INNER JOIN syscomments ON sys.sysobjects.id = sys.syscomments.id --对应id
WHERE sys.syscomments.text LIKE ‘%关键字%‘ --想要查询的关键字
sys.sysobjcets : 针对数据库内所建立的每个对象,如条件约束、默认值、记录、规则和预存进程,各包含一个数据列。
sys.syscomments : 包含数据库中每份检视、规则、默认值、触发进程、CHECK 条件约束、DEFAULT 条件约束以及预存进程的项目。?text?数据行包含原始的?SQL?定义陈述式。
sys.syscomments.text :?SQL?定义陈述式的实际文字。在字段里搜寻关键字。
若要指定检视(View)、预存进程(Stored Procedure)、纯量函数、数据表函数..等。加上条件?sys.sysobjects.type = ‘对象类型‘ 。
SELECT *
FROM sys.sysobjects
INNER JOIN syscomments ON sys.sysobjects.id = sys.syscomments.id --对应id
WHERE sys.syscomments.text LIKE ‘%关键字%‘ --想要查询的关键字
AND sys.sysobjects.type = ‘对象类型‘ --指定的对象类型
sys.sysobjects的type类型:
-
AF = 汇总函数 (CLR)
-
C = CHECK 条件约束
-
D = 默认值或 DEFAULT 条件约束
-
F = FOREIGN KEY 条件约束
-
FN = 纯量函数
-
FS = 组件 (CLR) 纯量函数
-
FT = 组件 (CLR) 数据表值函数 IF = 内嵌数据表函数
-
IT - 内部数据表
-
K = PRIMARY KEY 或 UNIQUE 条件约束
-
L = 记录
-
P = 预存进程
-
PC = 组件 (CLR) 预存进程
-
R = 规则
-
RF = 复写筛选预存进程
-
S = 系统数据表
-
SN = 同义字
-
SQ = 服务队列
-
TA = 组件 (CLR) DML 触发进程
-
TF = 数据表函数
-
TR = SQL DML 触发进程
-
TT = 数据表类型
-
U = 使用者数据表
-
V = 检视
-
X = 扩充预存进程
?
例如,要搜寻在检视中有‘Name‘这个文字,SQL如:
SELECT *
FROM sys.sysobjects
INNER JOIN syscomments ON sys.sysobjects.id = sys.syscomments.id --对应id
WHERE sys.syscomments.text LIKE ‘%Name%‘ --想要查询的关键字,Name
AND sys.sysobjects.type = ‘V‘ --指定的对象类型,检视(View)
?END?
回目录?
原文:大专栏 [SQL] 在SQL Server中搜寻关键字