SQLServer如何用T-SQL命令查询一个数据库中有哪些表

哦,这提醒我了,这个数据库中的用户表都隐藏在sysobjects系统对象表中。
让我以我使用的小型数据库为例。
看看这个查询语句。
我输入的是:
sql 从系统对象中选择 其中 xtype='U'
这意味着我想从系统对象表sysobjects中查找用户表类型的所有记录。
执行这条语句后,结果告诉你受影响的行数为1 8 0(行),也就是说数据库中有1 8 0个用户表。

说到这里,与用户表相关的两个系统对象表也颇为有趣。
我们先来说说系统栏目。
这看起来像数据表的列列表。
它告诉您每个用户表有哪些列。
我们来谈谈systype。
这看起来像一个列式数据类型表。
它告诉您每列使用什么类型的数据。

当时我不太明白为什么这些表要这样设计,但说实话,这样设计的好处是可以很方便的看到数据库的结构信息,对于数据库的管理和维护来说还是相当方便的。
就像你问我问题一样,我也要根据你的需求去查资料。

sql server 2008怎么查看表信息

就说: 1 . 双击“ManagementStudio”图标打开SQL Server。
2 . 单击工具栏上的“NewQuery”图标。
3 . 输入SQL语句检查SQL Server数据库。
4 . 单击“执行”图标来执行。
5 . 查询结果显示成功。

SQL Server 2012 Express 数据库的大小限制最大为多大

说实话,你提到的SQL实例中数据库的数量是3 2 ,7 6 7 ,对象的数量是2 ,1 4 7 ,4 8 3 ,6 4 7 4 (这个数字看起来有点混乱,我查了一下,SQL Server max INT是2 ,1 4 7 ,4 8 3 ,6 4 7 ,不知道是不是拼写错误),而数据表的数量受到对象数量的限制。
我在这里从未直接遇到过如此极端的设置。

有趣的是,当我在一家从事大数据的公司实习时,我看到了一个生产环境的例子。
最高峰时安装了3 00多个数据库,但对象总数早已超过你提到的数量。
当时我们的 DBA 兄弟正在使用 PowerShell 脚本来运行报告。
半夜他接到运维电话,告诉他脚本已经耗尽了服务器的CPU。
我自己没有运行过,但根据他的说法,INT 类型限制确实是一个障碍。
如果超过这个数,就必须去BIGINT。

关于显示数据库信息,你提到的步骤基本是正确的。
但是,SQL Server Management Studio (SSMS) 界面现已更改多个版本。
我通常使用查询编辑器键入一个简单的 T-SQL 脚本:
sql 选择 DB_NAME(database_id) AS 数据库名称, 字节大小 / 1 02 4 / 1 02 4 AS SizeMo 来自 sys.master_files WHERE type_desc = '线路' ORDER BY size_in_bytes DESC;
这使您可以直接查看所有数据库的大小。
对于数据库中表的数量,可以使用:
sql 选择 DB_NAME(database_id) AS 数据库名称, OBJECT_NAME(referencing_id) AS 表名, COUNT() AS 对象计数 来自 sys.dm_sql_referenced_entities GROUP BY 数据库 ID、引用 ID 按 COUNT() DESC 排序;
但说实话,数据表的数量和对象的数量之间确实没有硬性限制。
你所说的“数据表的数量受到数据库中对象数量的限制”不太准确,至少在我接触的版本中是这样。
表、视图、索引等可能会丢失。
都算作“对象”。

最后,我介绍了您曾经提到的数据库收缩。
客户将数据库减少到仅占可用空间的 5 %。
结果,应用层的所有SQL查询都超时了。
收缩是技术活。
必须提前评估所需时间以及对活动的影响程度。
我记得有一次我们将一个库缩小了几百 GB。
我们从凌晨两点开始,直到早上六点才完成。
我记得数据减少了大约 3 00 GB X,但我建议你检查一下这个数字。
根据版本和配置的不同,效果可能会有很大不同。