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基本使用和简单的CRUD操作
Apr 05 SQL Server
SQL Server 数据库实验课第五周——常用查询条件
Apr 05 SQL Server
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
SQLServer2008提示评估期已过解决方案
Apr 12 SQL Server
SQL Server代理:理解SQL代理错误日志处理方法
Jun 30 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL中的三种去重方法小结
Nov 01 SQL Server
SQL CASE 表达式的具体使用
Mar 21 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
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验证码类代码分享(已封装成类)
2011/07/17 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP简单日历实现方法
2016/07/20 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
基于python实现微信模板消息
2015/12/21 Python
Python 转义字符详细介绍
2017/03/21 Python
python实现发送邮件功能代码
2017/12/14 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python学生管理系统开发
2019/01/30 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
什么是java序列化,如何实现java序列化
2012/11/14 面试题
经典c++面试题五
2014/12/17 面试题
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
周一给客户的问候语
2015/11/10 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
python开发的自动化运维工具ansible详解
2021/08/07 Python