[SQL] 在SQL Server中搜寻关键字

时间:2022-01-07 05:59:56

[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中搜寻关键字