SQL Server中搜索特定的对象


Posted in SQL Server onMay 25, 2022

检索数据库架构信息 - ADO.NET | Microsoft 官方文档

将系统表映射到系统视图 (Transact-sql) - SQL Server | Microsoft 官方文档

一、注释中带某关键字的对象(sys.extended_properties)

主要用到 sys.tables 、sys.columns 、sys.procedures  系统对象表以及sys.extended_properties 扩展属性表

--查询列
SELECT  A.name AS table_name ,
         B.name AS column_name ,
         C.value AS column_description
FROM    sys.tables A
         INNER JOIN sys.columns B ON B.object_id = A.object_id
         LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id
                                                AND C.minor_id = B.column_id
 WHERE   CAST(C.[value] AS VARCHAR(1000)) LIKE '%年假%';


--查询表
SELECT  A.name AS table_name ,
         C.value AS column_description
 FROM    sys.tables A
         INNER JOIN sys.extended_properties C ON C.major_id = A.object_id
                                                AND C.minor_id = 0
 WHERE   CAST(C.[value] AS VARCHAR(1000)) LIKE '%请假%'

--查询存储过程
SELECT  A.name AS table_name ,
         C.value AS column_description
 FROM    sys.procedures A
         INNER JOIN sys.extended_properties C ON C.major_id = A.object_id
                                                AND C.minor_id = 0
 WHERE   CAST(C.[value] AS VARCHAR(1000)) LIKE '%年假%'

二、定义语句中带某关键字的对象(sys.all_sql_modules )

主要用到 dbo.sysobjects 系统对象表以及sys.all_sql_modules 对象定义语句表

--老方式
SELECT   DISTINCT b.name, b.xtype
FROM     dbo.syscomments a, dbo.sysobjects b
WHERE    a.id = b.id
         AND b.xtype = 'p'
         AND a.text LIKE '%LotMax%'
ORDER BY name;

--从 2008 开始,新方式
SELECT   name, type_desc
FROM     sys.all_sql_modules s
         INNER JOIN sys.all_objects o ON s.object_id = o.object_id
WHERE    definition LIKE '%LotMax%'
ORDER BY type_desc, name;

三、查找列名

select   A.name as table_name, B.name as column_name
from     sys.tables A
         inner join sys.columns B on B.object_id = A.object_id
where    B.name like '%File%' 
order by A.name, B.name;

 完整的列属性:

with indexCTE
as ( select ic.column_id, ic.index_column_id, ic.object_id
     from   ZSOtherData.sys.indexes idx
            inner join ZSOtherData.sys.index_columns ic on idx.index_id = ic.index_id and idx.object_id = ic.object_id
     where  idx.object_id = object_id('MouldTestResultDetail') and idx.is_primary_key = 1 )
select   colm.column_id ColumnID, cast(case when indexCTE.column_id is null then 0 else 1 end as bit) IsPrimaryKey, colm.name column_name ,object_definition(colm.default_object_id) AS column_def,
         systype.name type_name, colm.is_identity is_identity,f.keyno as is_foreignkey, colm.is_nullable , cast(colm.max_length as int) ByteLength ,
         ( case when systype.name = 'nvarchar' and colm.max_length > 0 then colm.max_length / 2
                when systype.name = 'nchar' and colm.max_length > 0 then colm.max_length / 2
                when systype.name = 'ntext' and colm.max_length > 0 then colm.max_length / 2 else colm.max_length end ) length ,
         cast(colm.precision as int) precision, cast(colm.scale as int) scale,colm.is_computed, prop.value Remark
from     ZSOtherData.sys.columns colm
         inner join ZSOtherData.sys.types systype on colm.system_type_id = systype.system_type_id and colm.user_type_id = systype.user_type_id
         left join ZSOtherData.sys.extended_properties prop on colm.object_id = prop.major_id and colm.column_id = prop.minor_id
         left join indexCTE on colm.column_id = indexCTE.column_id and colm.object_id = indexCTE.object_id
     left join sysforeignkeys f on f.fkeyid=colm.object_id and f.fkey=colm.column_id
where    colm.object_id = object_id('MouldTestResultDetail')
order by colm.column_id;

SQL Server中搜索特定的对象

到此这篇关于SQL Server搜索特定对象的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

SQL Server 相关文章推荐
SQL Server连接查询的实用教程
Apr 07 SQL Server
SQLServer2008提示评估期已过解决方案
Apr 12 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
通过T-SQL语句创建游标与实现数据库加解密功能
Mar 16 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
SQL Server数据库基本概念、组成、常用对象与约束
Mar 20 SQL Server
SQL CASE 表达式的具体使用
Mar 21 SQL Server
如何使用SQL Server语句创建表
Apr 12 SQL Server
SQLServer权限之只开启创建表权限
Apr 12 SQL Server
SQL Server删除表中的重复数据
May 25 SQL Server
SQL Server使用T-SQL语句批处理
May 20 #SQL Server
SQL Server 中的事务介绍
May 20 #SQL Server
SQL Server中锁的用法
May 20 #SQL Server
SQL Server中使用表变量和临时表
May 20 #SQL Server
SQL Server中的游标介绍
May 20 #SQL Server
SQL Server #{}可以防止SQL注入
May 11 #SQL Server
SQL Server 忘记密码以及重新添加新账号
You might like
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
AngularJs分页插件使用详解
2018/06/30 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
python执行精确的小数计算方法
2019/01/21 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
如何理解python面向对象编程
2020/06/01 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
python 写一个水果忍者游戏
2021/01/13 Python
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
后勤主管工作职责
2013/12/07 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
八达岭长城导游词
2015/01/30 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python