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 05 SQL Server
SQL Server2019数据库之简单子查询的具有方法
Apr 27 SQL Server
如何有效防止sql注入的方法
May 25 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
May 25 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
sql server删除前1000行数据的方法实例
Aug 30 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
SQL Server数据库基本概念、组成、常用对象与约束
Mar 20 SQL Server
SQL Server中的游标介绍
May 20 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
SQL解决未能删除约束问题drop constraint
May 30 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
php中用文本文件做数据库的实现方法
2008/03/27 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
Python中extend和append的区别讲解
2019/01/24 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
某公司面试题
2012/03/05 面试题
名人演讲稿范文
2013/12/28 职场文书
摄影助理岗位职责
2014/02/07 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript