SQL Server中搜索特定的对象

 更新时间:2022年05月24日 08:26:02   作者:springsnow  
这篇文章介绍了SQL Server搜索特定对象的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

检索数据库架构信息 - 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搜索特定对象的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 数据库中聚簇索引与非聚簇索引的区别[图文]

    数据库中聚簇索引与非聚簇索引的区别[图文]

    在《数据库原理》里面,对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关。正式因为如此,所以一个表最多只能有一个聚簇索引
    2012-02-02
  • SQLServer导入数据图文方法

    SQLServer导入数据图文方法

    有时需要将别的数据库的内容,导入到当前数据库中,就需要导入数据即可。下面是详细的图文方法。
    2010-07-07
  • sql server性能调优 I/O开销的深入解析

    sql server性能调优 I/O开销的深入解析

    这篇文章主要给大家介绍了关于sql server性能调优 I/O开销的相关资料,文中通过示例代码以及图片介绍的非常详细,对大家的理解和学习具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • MSSQL基本语法及实例操作语句

    MSSQL基本语法及实例操作语句

    这篇文章介绍了MSSQL的基本语法及实例操作语句,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • SQLServer中master数据库分析

    SQLServer中master数据库分析

    sql下master数据库分析,了解下master数据库主要是做什么用的
    2008-04-04
  • SQL Server 使用 Pivot 和 UnPivot 实现行列转换的问题小结

    SQL Server 使用 Pivot 和 UnPivot 

    对于行列转换的数据,通常也就是在做报表的时候用的比较多,今天就通过本文给大家总结下SQL Server 使用 Pivot 和 UnPivot 实现行列转换的问题小结,感兴趣的朋友一起看看吧
    2022-01-01
  • 日常收集常用SQL查询语句大全

    日常收集常用SQL查询语句大全

    日常收集常用的sql查询语句,包括一些简单查询语句,复杂查询语句,本文介绍详细,非常具有参考价值,特此分享到脚本之家平台,供大家学习借鉴
    2015-11-11
  • 用SQL批量插入数据的代码

    用SQL批量插入数据的代码

    循环插入数据的代码,需要的朋友可以参考下。
    2011-01-01
  • Filestream使用简单步骤总结

    Filestream使用简单步骤总结

    这篇文章主要介绍了Filestream使用简单步骤总结,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 使用sqlserver存储过程sp_send_dbmail发送邮件配置方法(图文)

    使用sqlserver存储过程sp_send_dbmail发送邮件配置方法(图文)

    这篇文章用图文的方式介绍了使用sqlserver存储过程sp_send_dbmail发送邮件的方法,大家参考使用吧
    2014-01-01

最新评论