在 SQL Server 中,系统表是存储在系统数据库(通常是 master
数据库)中的表,它们包含了关于数据库实例和系统信息的数据。查询系统表可以帮助你了解数据库的状态、配置和运行时信息。
以下是一些常用的系统表及其用途:
master.sys.tables
SELECT * FROM master.sys.tables;
master.sys.columns
SELECT * FROM master.sys.columns WHERE TABLE_NAME = 'YourTableName';
master.sys.indexes
SELECT * FROM master.sys.indexes WHERE TABLE_NAME = 'YourTableName';
master.sys.key_constraints
SELECT * FROM master.sys.key_constraints WHERE TABLE_NAME = 'YourTableName';
master.sys.foreign_keys
SELECT * FROM master.sys.foreign_keys WHERE TABLE_NAME = 'YourTableName';
master.sys.indexes
SELECT * FROM master.sys.indexes WHERE TABLE_NAME = 'YourTableName';
master.sys.partitions
SELECT * FROM master.sys.partitions WHERE TABLE_NAME = 'YourTableName';
master.sys.objects
SELECT * FROM master.sys.objects WHERE TYPE = 'U' AND NAME = 'YourTableName';
master.sys.sql_modules
SELECT * FROM master.sys.sql_modules WHERE OBJECT_ID = OBJECT_ID('YourProcedureName');
master.sys.dm_exec_requests
SELECT * FROM master.sys.dm_exec_requests;
请注意,查询系统表通常需要具有相应的权限。如果你没有足够的权限,可能会遇到访问被拒绝的错误。此外,某些系统表可能在特定的数据库实例中存在,而不是在所有实例中都存在。