2023年,第34周,第1篇文章。给自己一个目标,然后坚持总会有收货,不信你试试!
SQL SERVER 官方本身就有数据库可视化管理工具SSMS,所以大部分都会使用SSMS。以前版本是直接捆绑,
安装完成就自带有,最近版本可以不捆绑,需要单独下载安装对应版本。

目录

  • 一、可视化工具
    • 1.1、Azure Data Studio
    • 1.2、Visual Studio Code
    • 1.3、DBeaver
    • 1.4、SQL Server Data Tools (SSDT)
    • 1.5、dbForge Studio for SQL Server
    • 1.6、Navicat for SQL Server
  • 二、SSMS版本
    • 1.1、SQL Server 2008 SSMS
    • 1.2、SQL Server 2012 SSMS
    • 1.3、SQL Server 2014 SSMS
    • 1.4、SQL Server 2016 SSMS
    • 1.5、SQL Server 2017 SSMS
    • 1.6、SQL Server 2019 SSMS
  • 三、常见系统表
    • 1.1、sys.objects
    • 1.2、sys.columns
    • 1.3、sys.tables
    • 1.4、sys.views
    • 1.5、sys.procedures
    • 1.6、sys.triggers
    • 1.7、sys.indexes
    • 1.8、sys.schemas
    • 1.9、sys.databases
    • 1.10、sys.sysprocesses
  • 四、SQL查询系统表
    • 4.1、查询数据库所有表
    • 4.2、查询表字段和备注

一、可视化工具

除了 Microsoft SQL Server Management Studio (SSMS),还有许多其他可视化工具可用于管理和查询 SQL Server 数据库。
以下是一些常用的可视化工具:

1.1、Azure Data Studio

这是一个轻量级的跨平台数据库管理工具,可用于连接和管理多个数据库,包括 SQL Server、Azure SQL Database 等。

1.2、Visual Studio Code

虽然它是一个通用的代码编辑器,但通过安装适当的扩展,如 mssql 扩展,可以在 Visual Studio Code 中连接和查询 SQL Server 数据库。

1.3、DBeaver

这是一个功能丰富的开源数据库管理工具,支持多个数据库平台,包括 SQL Server。它提供了直观的用户界面和强大的查询功能。

1.4、SQL Server Data Tools (SSDT)

这是一个 Visual Studio 的插件,专门为 SQL Server 数据库开发提供支持。它提供了数据库项目、模型设计、数据比较和发布等功能。

1.5、dbForge Studio for SQL Server

这是一个功能强大的商业数据库管理工具,提供了广泛的功能,包括数据库设计、查询构建、数据导入导出等。

1.6、Navicat for SQL Server

这是另一个商业数据库管理工具,支持多个数据库平台,包括 SQL Server。它提供了直观的用户界面和丰富的功能集。

这些可视化工具具有不同的功能和用户界面,可以根据个人喜好和需求选择适合自己的工具。
无论您选择哪个工具,都可以方便地进行 SQL Server 数据库的管理和查询。

二、SSMS版本

Microsoft SQL Server Management Studio (SSMS) 是用于管理和操作 Microsoft SQL Server 数据库的集成环境。
它提供了一个图形用户界面,可以进行数据库的设计、查询、管理和调优等操作。

SSMS 的每个版本都会引入一些新的功能和改进,以下是一些常见版本之间的主要区别

1.1、SQL Server 2008 SSMS

发布于 2008 年,这是最早的 SSMS 版本之一。
SSMS 2008 带来了许多新功能和改进,包括:
1)IntelliSense
提供了代码自动完成和语法检查的功能,可以更快速地编写和调试 SQL 查询和脚本。
2)多文件查询编辑器
允许同时打开和编辑多个查询文件,方便进行多个查询之间的比较和调试。
3)依赖关系查看器
允许查看数据库对象之间的依赖关系,方便了解对象之间的依赖和影响。
4)活动监视器
提供了实时监控和分析数据库活动和性能的功能,包括查询的执行计划、锁和阻塞信息等。

1.2、SQL Server 2012 SSMS

发布于2012年3月7日,这个版本引入了一些新的功能,如本地执行计划预览、分组窗口函数语法高亮、
列选择器以及对一些新的 SQL Server 2012 特性的支持。

1.3、SQL Server 2014 SSMS

发布于2014年4月1日,此版本引入了更多的功能和改进,包括缓存扩展模式、多服务器查询等。

1.4、SQL Server 2016 SSMS

发布于2016年6月1日,这个版本增加了对 SQL Server 2016 的许多新功能的支持,如 Temporal 表、动态数据遮罩、行级安全等。

1.5、SQL Server 2017 SSMS

发布于2017年10月2日,此版本引入了一些新的功能,如绘图、自动关联、自动化自检等。

1.6、SQL Server 2019 SSMS

发布于2019年11月4日,这个版本增加了对 SQL Server 2019 的新功能的支持,如 Big Data Clusters、加密数据页、智能查询处理等。

需要注意的是,每个版本的 SSMS 都支持相应版本的 SQL Server 数据库,但通常较新版本的 SSMS 也能向下兼容较旧版本的数据库。
建议使用最新版本的 SSMS,以便获得更多的功能和性能改进。

请注意,以上只是一些主要版本之间的区别,并不详细。
小伙伴们可以查阅 Microsoft 官方文档或更详细的发布说明来了解每个版本的具体改进和新增功能。

三、常见系统表

在 SQL Server 中,系统表是用于存储数据库元数据和系统信息的特殊表。以下是一些常见的 SQL Server 系统表:

1.1、sys.objects

此表包含数据库中所有对象(如表、视图、存储过程、触发器等)的信息,包括其名称、类型、创建日期等。

1.2、sys.columns

该表存储数据库中所有表的列信息,包括列的名称、数据类型、长度等。

1.3、sys.tables

这个表包含数据库中所有的表的信息,包括表的名称、模式、类型、创建日期等。

1.4、sys.views

该表存储数据库中所有的视图信息,包括视图的名称、定义、创建日期等。

1.5、sys.procedures

此表包含数据库中所有存储过程的信息,例如存储过程的名称、定义、创建日期等。

1.6、sys.triggers

该表包含数据库中所有触发器的信息,包括触发器的名称、关联的表、事件类型等。

1.7、sys.indexes

此表存储数据库中所有索引的信息,包括索引的名称、所属表、列等。

1.8、sys.schemas

该表包含数据库中所有的模式信息,包括模式的名称、属主等。

1.9、sys.databases

此表存储所有数据库的信息,包括数据库的名称、创建日期、状态等。

1.10、sys.sysprocesses

该表提供有关当前 SQL Server 实例上运行的每个进程的信息,包括进程的 ID、状态、当前执行的 SQL 语句等。

以上是一些常见的 SQL Server 系统表,它们可以提供关于数据库结构、对象和元数据的重要信息,帮助进行数据库管理、查询和监视。
请注意,这只是一小部分系统表,并且可能因 SQL Server 版本和配置而有所差异。

四、SQL查询系统表

4.1、查询数据库所有表

要查询 SQL Server 数据库中的所有表,你可以使用以下 SQL 查询:

USE YourDatabaseName; -- 替换为你要查询的数据库名称SELECT *FROM sys.tables;

在上面的查询中,你需要将 “YourDatabaseName” 替换为你要查询的数据库的实际名称。
该查询将从 sys.tables 系统表中检索到关于数据库中所有表的信息,并返回该信息。

请注意,这个查询将返回包含所有表的结果集,包括系统表和用户表。
如果你只想返回用户表,可以在查询中添加一个附加的筛选条件,例如:

USE YourDatabaseName; -- 替换为你要查询的数据库名称SELECT *FROM sys.tablesWHERE is_ms_shipped = 0;

通过将 is_ms_shipped = 0 条件添加到查询中,可以排除系统表,并仅返回用户表。

另外,还可以使用 SSMS 图形用户界面来获取数据库中的所有表。在 SSMS 中,
展开数据库对象(在“对象资源管理器”窗格中可见),然后选择“表”文件夹,你就可以看到该数据库中的所有表。

4.2、查询表字段和备注

要查询 SQL Server 数据库表的字段和字段说明,你可以使用以下 SQL 查询:

USE 数据库名; -- 替换为你要查询的数据库名称SELECT T.TABLE_NAME AS 表名,C.COLUMN_NAME AS 字段名,P.VALUE AS 字段说明FROM INFORMATION_SCHEMA.TABLES AS TINNER JOIN INFORMATION_SCHEMA.COLUMNS AS C ON T.TABLE_NAME = C.TABLE_NAMELEFT JOIN (SELECT MAJOR_ID,MINOR_ID,NAME,VALUEFROM SYS.EXTENDED_PROPERTIES WHERE NAME = 'MS_Description') AS P ON P.MAJOR_ID = OBJECT_ID(T.TABLE_NAME) AND P.MINOR_ID = COLUMNPROPERTY(OBJECT_ID(T.TABLE_NAME), C.COLUMN_NAME, 'ColumnID')WHERE T.TABLE_TYPE = 'BASE TABLE' and T.TABLE_NAME='你的表名' -- 只查询基本表ORDER BY T.TABLE_NAME, C.ORDINAL_POSITION;

在查询中,将 “数据库名” 替换为你要查询的实际数据库名称。
该查询通过联接 INFORMATION_SCHEMA.TABLES 和 INFORMATION_SCHEMA.COLUMNS 系统视图来检索数据库中表字段的信息。
然后,使用子查询获取字段的说明信息。
查询结果包括表名、字段名和字段说明。
使用 WHERE 子句可以根据需要进行过滤,例如只查询基本表或特定的表。
查询结果按表名和字段顺序排序。
请注意,这个查询默认使用的是 MS_Description 扩展属性来存储字段说明。
如果你在数据库中使用了其他名称来存储说明信息,需要相应地修改 WHERE 子查询中的 NAME = ‘MS_Description’ 条件。