type in sysproperties

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

type in sysproperties

Сообщение Andrey Fedorov » 30.06.2005 (Чт) 10:24

Кто-нибудь знает, какие возможные значения type в sysproperties?

К примеру:

3 - Таблица
4 - Колонка
6 - Индекс

А то дюже неохота их методом тыка выискивать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.06.2005 (Чт) 12:09

Решил написать свой SQL EM? :) Ну так открой в нем Design Table, но предварительно повесь профайлер на этот коннект, и посмотри, что он гоняет. Навскидку могу сказать - ищи упоминание таблицы master.dbo.spt_values.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.06.2005 (Чт) 12:14

Ennor писал(а):Решил написать свой SQL EM? :)


Нет, просто одна утилитка.

Ennor писал(а):ищи упоминание таблицы master.dbo.spt_values.


Это не в тему...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.06.2005 (Чт) 18:38

копать здесь:
Код: Выделить всё
COLUMNPROPERTY ( id , column , property )
:idea:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 30.06.2005 (Чт) 18:42

и еще вот это глянь, по аналогии:
Код: Выделить всё
select OBJECTPROPERTY(OBJECT_ID('myproc'), 'ExecIsQuotedIdentOn')

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.07.2005 (Пт) 6:55

Konst_One писал(а):и еще вот это глянь, по аналогии:
Код: Выделить всё
select OBJECTPROPERTY(OBJECT_ID('myproc'), 'ExecIsQuotedIdentOn')


Вообще-то нужное я получил следующим запросом:

Код: Выделить всё

SELECT *
   FROM (SELECT PT=CASE o.xtype WHEN 'U' THEN 'Table'
               WHEN 'V' THEN 'View'
               WHEN 'P' THEN 'Procedure'
               WHEN 'FN' THEN 'Function'
               WHEN 'IF' THEN 'Function'
               WHEN 'TF' THEN 'Function'
               WHEN 'D' THEN 'Default constraint'
               WHEN 'R' THEN 'Rule'
               ELSE o.xtype END,
            P=o.name, OT=NULL, O=NULL, p.name, p.[value]
         FROM sysproperties p
            INNER JOIN sysobjects o ON p.id=o.id
         WHERE p.type=3 AND p.smallid=0 AND o.parent_obj=0
            AND NOT (p.name LIKE 'MS_%' AND p.name <> 'MS_Description')
      UNION
      SELECT CASE o.xtype WHEN 'U' THEN 'Table'
               WHEN 'V' THEN 'View'
               WHEN 'P' THEN 'Procedure'
               WHEN 'FN' THEN 'Function'
               WHEN 'IF' THEN 'Function'
               WHEN 'TF' THEN 'Function'
               ELSE o.xtype END,
            o.name,
            CASE WHEN o.xtype IN('U','V') THEN 'Columns' ELSE 'Parameters' END,
            c.name, p.name, p.[value]
         FROM sysproperties p
            INNER JOIN sysobjects o ON p.id=o.id
            INNER JOIN syscolumns c ON p.id=c.id AND p.smallid=c.colid
         WHERE p.type IN(4,5)
            AND NOT (p.name LIKE 'MS_%' AND p.name <> 'MS_Description')
      UNION
      SELECT CASE o.xtype WHEN 'U' THEN 'Table'
               WHEN 'V' THEN 'View'
               ELSE o.xtype END,
             o.name, 'Index', i.name, p.name, p.[value]
         FROM sysproperties p
            INNER JOIN sysobjects o ON p.id=o.id
            INNER JOIN sysindexes i ON p.id=i.id AND p.smallid=i.indid
         WHERE p.type=6
      UNION
      SELECT CASE po.xtype WHEN 'U' THEN 'Table'
               WHEN 'V' THEN 'View'
               ELSE po.xtype END,
            po.name,
            CASE o.xtype WHEN 'TR' THEN 'Trigger'
               WHEN 'C' THEN 'Check constraint'
               ELSE o.xtype END,
            o.name, p.name, p.[value]
         FROM sysproperties p
            INNER JOIN sysobjects o ON p.id=o.id
            INNER JOIN sysobjects po ON o.parent_obj=po.id
         WHERE p.type=3 AND p.smallid=0
         ) AS T
   ORDER BY 1,2,3,4
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.07.2005 (Пт) 11:29

теперь понятно, что тебе надо было :P
удобная получилась вьюшка с описанием объектов.
где-то подобное уже делал, но найти сейчас не смог.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.07.2005 (Пт) 16:13

Код: Выделить всё
select * from information_schema.columns

Как я понял, весь геморрой - из-за sysproperties? Ну ты не ленивый...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.07.2005 (Пт) 16:17

скорее из-за описаний (MS_Description) :wink:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.07.2005 (Пт) 16:23

А что там вообще может быть, окромя 'MS_Description'? Я, признаться, ни разу там ничего не видел, а сама табла не документирована...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.07.2005 (Пт) 16:38

можно и свое описание добавить и по нему уже смотреть, а если редактировать через EM какое-нибудь поле в таблице или его описание, то тогда будет MS_Description

можно так:

Код: Выделить всё
exec sp_addextendedproperty N'My_Description', N'Код юзера из SystemUsers', N'user', N'dbo', N'table', N'UserRestrictions', N'column', N'UserID'

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.07.2005 (Пт) 16:55

Konst_One писал(а):можно и свое описание добавить и по нему уже смотреть, а если редактировать через EM какое-нибудь поле в таблице или его описание, то тогда будет MS_Description


Угу - мне и нужны мои проперти и MS_Description.

Только вот как остальные, системные MS_%, убрать окромя как по маске я еще не догадался, а это не совсем хорошо - юзер, по идее, тоже может создать свою пропертю, которая начинается на MS_ ...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.07.2005 (Пт) 17:01

MS_Description - это мелкософтовское, а все остальные - юзеровские

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 04.07.2005 (Пн) 6:57

Konst_One писал(а):MS_Description - это мелкософтовское, а все остальные - юзеровские


Я бы сказал что и MS_Description это юзерское - по крайней мере это то что я могу набрать в свойствах поля таблицы. А вот все остальное точно можно отнести к более системным вещам - оно точно не нужно.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList