Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Системные базовые таблицы — это основные таблицы, в которых хранятся метаданные определенной базы данных. База master данных является особенной в этом отношении, так как она содержит некоторые дополнительные таблицы, которые не найдены в других базах данных. Эти таблицы содержат устойчивые метаданные, областью которых является весь сервер.
Внимание
Системные базовые таблицы используются только в ядре СУБД SQL Server и не используются для общего использования клиентов. Системные базовые таблицы подвержены изменению, и совместимость не гарантируется.
Метаданные базовой таблицы системы
Участник, имеющий CONTROLили ALTERVIEW DEFINITION разрешение на базу данных, может просматривать метаданные системной базовой таблицы в представлении sys.objects каталога. Участник также может разрешать имена и идентификаторы объектов системных базовых таблиц с помощью встроенных функций, таких как OBJECT_NAME и OBJECT_ID.
Чтобы привязаться к системной базовой таблице, пользователь должен подключиться к экземпляру SQL Server с помощью выделенного подключения администратора (DAC). Попытка выполнить SELECT запрос из системной базовой таблицы без подключения с помощью DAC вызывает ошибку.
Внимание
Доступ к системным базовым таблицам с помощью DAC предназначен только для персонала Майкрософт, и это не поддерживаемый сценарий клиента.
Системные базовые таблицы
В следующей таблице перечислены и описаны все системные базовые таблицы в SQL Server.
| Базовая таблица | Описание |
|---|---|
sys.sysschobjs |
Существует в каждой базе данных. Каждая строка представляет объект базы данных. |
sys.sysbinobjs |
Существует в каждой базе данных. Содержит по строке на каждую сущность компонента Service Broker в базе данных. Сущности Service Broker включают следующие объекты: Тип сообщения контракт службы; Услуга Для списка имен и типов используется фиксированная двоичная сортировка. |
sys.sysclsobjs |
Существует в каждой базе данных. Содержит строку для каждой классифицированной сущности, которая использует те же общие свойства, которые включают следующие объекты: Сборка устройство резервного копирования; Полнотекстовый каталог Функция секционирования Схема секционирования файловая группа; Ключ обфускации Схема |
sys.sysnsobjs |
Существует в каждой базе данных. Содержит по строке на каждую сущность, действующую в пространстве имен. Эта таблица используется для хранения сущностей XML-коллекции. |
sys.syscolpars |
Существует в каждой базе данных. Содержит по строке на каждый столбец таблицы, представления или табличной функции. Cодержит также по строке на каждый параметр процедуры или функции. |
sys.systypedsubobjs |
Существует в каждой базе данных. Содержит по строке на каждую типизированную вложенную сущность. К этой категории относятся только параметры функции секционирования. |
sys.sysidxstats |
Существует в каждой базе данных. Содержит по строке на каждый индекс или статистику для таблиц и индексированных представлений. Заметка: Каждый индекс (кроме кучи) связан со статистикой, которая имеет то же имя, что и индекс. |
sys.sysiscols |
Существует в каждой базе данных. Содержит по строке на каждый материализованный столбец индекса или статистики. |
sys.sysscalartypes |
Существует в каждой базе данных. Содержит по строке на каждый системный или пользовательский тип данных. |
sys.sysdbreg |
Существует только в master базе данных. Содержит по строке на каждую зарегистрированную базу данных. |
sys.sysxsrvs |
Существует только в master базе данных. Содержит по строке на каждый локальный, связанный или удаленный сервер. |
sys.sysrmtlgns |
Эта системная базовая таблица существует только в master базе данных. Содержит по строке на каждое сопоставление удаленного имени входа. Используется для сопоставления имен входа, предположительно поступивших с соответствующего сервера, с действительным локальным именем входа. |
sys.syslnklgns |
Существует только в master базе данных. Содержит по строке на каждое сопоставление связанных имен входа. Сопоставления связанных имен входа используются для удаленного вызова процедур или распределенных запросов, идущих от локального сервера к соответствующему связанному серверу. |
sys.sysxlgns |
Существует только в master базе данных. Содержит по строке на каждый зарегистрированный участник на уровне сервера. |
sys.sysdbfiles |
Существует в каждой базе данных. Если столбец dbid равен нулю, строка представляет файл, принадлежащий этой базе данных.
master В базе данных столбец dbid может быть ненулевой. В этом случае строка представляет главный файл. |
sys.sysusermsg |
Существует только в master базе данных. Каждая строка представляет сообщение об ошибке, заданное пользователем. |
sys.sysprivs |
Существует в каждой базе данных. Содержит по строке на каждое разрешение на уровне базы данных или сервера. Примечание. Разрешения на уровне сервера хранятся в master базе данных. |
sys.sysowners |
Существует в каждой базе данных. Каждая строка соответствует участнику базы данных. |
sys.sysobjkeycrypts |
Существует в каждой базе данных. Содержит по строке на каждый симметричный ключ, шифр и криптографическое свойство, связанное с объектом. |
sys.syscerts |
Существует в каждой базе данных. Содержит по строке на каждый сертификат в базе данных. |
sys.sysasymkeys |
Существует в каждой базе данных. Каждая строка представляет асимметричный ключ. |
sys.ftinds |
Существует в каждой базе данных. Содержит по строке на каждый полнотекстовый индекс в базе данных. |
sys.sysxprops |
Существует в каждой базе данных. Содержит по строке на каждое расширенное свойство. |
sys.sysallocunits |
Существует в каждой базе данных. Содержит по строке на каждую единицу распределения памяти. |
sys.sysrowsets |
Существует в каждой базе данных. Содержит по строке на каждый набор строк секции для индекса или кучи. |
sys.sysrowsetrefs |
Существует в каждой базе данных. Содержит по строке для каждой ссылки индекса на набор строк. |
sys.syslogshippers |
Существует только в master базе данных. Содержит по строке на каждый сервер, следящий за зеркальным отображением базы данных. |
sys.sysremsvcbinds |
Существует в каждой базе данных. Содержит по строке на каждую привязку удаленной службы. |
sys.sysconvgroup |
Существует в каждой базе данных. Содержит по строке на каждый экземпляр службы в Service Broker. |
sys.sysxmitqueue |
Существует в каждой базе данных. Содержит по строке на каждую очередь передачи в Service Broker. |
sys.sysdesend |
Существует в каждой базе данных. Содержит по строке на каждую передающей конечную точку диалога Service Broker. |
sys.sysdercv |
Существует в каждой базе данных. Содержит по одной строке на каждую принимающую конечную точку диалога Service Broker. |
sys.sysendpts |
Существует только в master базе данных. Содержит по строке на каждую конечную точку, созданную на сервере. |
sys.syswebmethods |
Существует только в master базе данных. Содержит по строке на каждый метод SOAP, заданный в конечной точке HTTP с поддержкой протокола SOAP, которая создана на сервере. |
sys.sysqnames |
Существует в каждой базе данных. Содержит по строке на каждое пространство имен или полное имя 4-байтового идентификационного токена. |
sys.sysxmlcomponent |
Существует в каждой базе данных. Каждая строка представляет компонент XML-схемы. |
sys.sysxmlfacet |
Существует в каждой базе данных. Содержит по строке на каждый из аспектов (ограничений) определения типа XML. |
sys.sysxmlplacement |
Существует в каждой базе данных. Содержит по строке на каждое XML-размещение для компонентов XML. |
sys.syssingleobjrefs |
Существует в каждой базе данных. Содержит по строке на каждую ссылку типа N-1. |
sys.sysmultiobjrefs |
Существует в каждой базе данных. Содержит по строке на каждую ссылку типа N-N. |
sys.sysobjvalues |
Существует в каждой базе данных. Содержит по строке на каждое общее свойство сущности. |
sys.sysguidrefs |
Существует в каждой базе данных. Содержит по строке на каждую ссылку типа GUID. |
Обновление системных базовых таблиц
Данные из системных таблиц можно просмотреть с помощью представлений системных каталогов. Чтобы обновить метаданные в системной базовой таблице, используйте соответствующий интерфейс Transact-SQL (например, инструкции DDL). Невозможно вручную обновить системные таблицы. SQL Server сообщает следующие сообщения при выполнении прямых обновлений системных таблиц.
Системная таблица обновляется вручную
Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.
Запуск базы данных с системной таблицей, которая была обновлена вручную
Msg 3859: Warning: The system catalog was updated directly in database ID 17, most recently at date_time.
Выполните команду DBCC_CHECKDB после обновления системной таблицы вручную
Msg 3859: Warning: The system catalog was updated directly in database ID 17, most recently at date_time.
Если вы выполняете обновления вручную в системную таблицу и столкнулись с проблемой, может потребоваться восстановить данные из резервной копии или скопировать данные из затронутой базы данных в новую базу данных. Дополнительные сведения см. в разделе "Действия пользователей " для MSSQLSERVER_8992.