Подтвердить что ты не робот

SQL Server dbo.sysdiagrams - это таблица пользователей или системная таблица

При использовании диаграмм базы данных в простой базе данных SQL Server создает таблицу dbo.sysdiagrams в Table\Systam Tables node (в Microsoft studio studio\object explorer). Но таблица sysdiagrams помечена как таблица пользователя в SQL Server. вы можете получить таблицу пользователя по запросу.

SELECT * 
FROM sys.tables t
WHERE OBJECTPROPERTY(t.object_id,'IsUserTable') = 1

enter image description here

Я не знаю, что таблица sysdiagram является системной таблицей или является таблицей пользователя.

Существует microsoft_database_tools_support со значением 1 В расширенном свойстве sysdiagram, который автоматически определяет эту таблицу.

enter image description here

4b9b3361

Ответ 1

Системные таблицы используются внутри SQL Server, они одинаковы в каждой пользовательской базе данных.

sysdiagrams не является системной таблицей с точки зрения сервера.

Но SQL Server Management Studio создает его для хранения данных диаграммы, поэтому он также классифицирует его как системную таблицу.

Вы можете исключить такие системные таблицы, используя расширенный атрибут, который вы указали.

Ответ 2

Management Studio использует в определении "Системные объекты" следующее: "tbl" - это sys.tables:

CAST(
 case 
    when tbl.is_ms_shipped = 1 then 1
    when (
        select 
            major_id 
        from 
            sys.extended_properties 
        where 
            major_id = tbl.object_id and 
            minor_id = 0 and 
            class = 1 and 
            name = N'microsoft_database_tools_support') 
        is not null then 1
    else 0
end          
             AS bit) AS [IsSystemObject]