В SQL Server 2000 есть запрос sysobjects, который будет получать пользовательские представления, а не системные представления? - PullRequest
5 голосов
/ 28 августа 2008

Предполагая, что такой запрос существует, я был бы очень признателен за помощь.

Я пытаюсь разработать сценарий разрешений, который предоставит полномочия «выбирать» и «ссылки» для пользовательских таблиц и представлений в базе данных. Я надеюсь, что выполнение команд «grant» для каждого элемента в таком наборе облегчит поддержание текущих прав доступа при добавлении новых таблиц и представлений в базу данных.

Ответы [ 3 ]

6 голосов
/ 29 августа 2008
select * from information_schema.tables
WHERE OBJECTPROPERTY(OBJECT_ID(table_name),'IsMSShipped') =0 

Исключит dt_properties и системные таблицы

добавить

where table_type = 'view' 

если вы просто хотите посмотреть

2 голосов
/ 29 августа 2008
SELECT
    *
FROM
    sysobjects
WHERE
    xtype = 'V' AND
    type = 'V' AND
    category = 0

Вот список возможных значений для xtype :

  • C = ПРОВЕРЬТЕ ограничение
  • D = ограничение по умолчанию или DEFAULT
  • F = ограничение FOREIGN KEY
  • L = Log
  • P = Хранимая процедура
  • PK = ограничение PRIMARY KEY (тип K)
  • RF = хранимая процедура фильтра репликации
  • S = Системная таблица
  • TR = Триггер
  • U = Таблица пользователей
  • UQ = УНИКАЛЬНОЕ ограничение (тип K)
  • V = Просмотр
  • X = расширенная хранимая процедура

Вот возможные значения для type :

  • C = ПРОВЕРЬТЕ ограничение
  • D = ограничение по умолчанию или DEFAULT
  • F = ограничение FOREIGN KEY
  • FN = Скалярная функция
  • IF = Встроенная табличная функция
  • K = ПЕРВИЧНЫЙ КЛЮЧ или УНИКАЛЬНОЕ ограничение
  • L = Log
  • P = Хранимая процедура
  • R = Правило
  • RF = хранимая процедура фильтра репликации
  • S = Системная таблица
  • TF = Табличная функция
  • TR = Триггер
  • U = Таблица пользователей
  • V = Просмотр
  • X = расширенная хранимая процедура

Наконец, поле category выглядит так, как будто оно группируется на основе различных типов объектов. После анализа возвращаемого набора результатов системные представления выглядят как категория = 2, тогда как все пользовательские представления имеют категорию = 0. Надеюсь, это поможет.

Для получения дополнительной информации посетите http://msdn.microsoft.com/en-us/library/aa260447(SQL.80).aspx

0 голосов
/ 29 августа 2008
select * from information_schema.tables
where table_type = 'view'
...