Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
как бы сабж, где флаг, который говорит, что объект (таблица, хп) находится в системных?
30 окт 12, 11:06    [13395199]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
Glory
Member

Откуда:
Сообщений: 104751
OBJECTPROPERTY()
30 окт 12, 11:06    [13395202]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
Glory,

IsSystemTable странное св-во. в SMSS вижу его в системных, а св-во 0 возвращает
30 окт 12, 17:46    [13398723]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
IsMsShipped
30 окт 12, 17:47    [13398724]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
Glory
Member

Откуда:
Сообщений: 104751
netivan
в SMSS вижу его в системных

"Его" - это таблица или что ?
30 окт 12, 17:49    [13398737]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
netivan,

SELECT *
FROM  sys.objects AS o
WHERE is_ms_shipped =1 -- системный объект
30 окт 12, 17:54    [13398780]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
Glory,

таблица,например. Ведь могу и свою таблицу добавить в системные. Где-то же этот признак должен быть блин
30 окт 12, 18:06    [13398871]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
trew,

да, это очень похоже на правду :) сейчас проверяю
30 окт 12, 18:08    [13398882]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
Glory
Member

Откуда:
Сообщений: 104751
netivan
Ведь могу и свою таблицу добавить в системные.

Это как интересно ?
30 окт 12, 18:10    [13398889]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
Glory,

наверное вру, но процедуру точно можно. Была какая-то функция системная для этого )
30 окт 12, 18:19    [13398947]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
вот например процедура
dbo.sp_renamediagram видимо сама SMSS создает. Она видится в системных, при этом Is_ms_shipped=0. И как быть?
31 окт 12, 15:05    [13402846]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
> И как быть?

профайлером смотреть, какой запрос ssms отправляет для получения списка объектов.
31 окт 12, 15:16    [13402956]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
netivan,

запомнить что это исключение :)
SELECT * FROM  sys.system_objects AS so
WHERE name ='sp_renamediagram'

SELECT * FROM  sys.all_objects AS ao
WHERE name ='sp_renamediagram'
31 окт 12, 15:25    [13403031]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
daw,

спасибо, истина вот она:
(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)
31 окт 12, 16:07    [13403310]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
Glory
Member

Откуда:
Сообщений: 104751
netivan
dbo.sp_renamediagram видимо сама SMSS создает. Она видится в системных, при этом Is_ms_shipped=0. И как быть?

Наверное SMSS просто считает системными те объекты, что входят в схему sys.
31 окт 12, 16:08    [13403321]     Ответить | Цитировать Сообщить модератору
 Re: как определить объект относится к системным или нет?  [new]
netivan
Member

Откуда:
Сообщений: 8768
Glory,

неа. например, dbo.dt_validateloginparams (откуда это хз)
31 окт 12, 16:24    [13403475]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить