Ms sql список таблиц в схеме

Как получить список всех таблиц в базе данных Microsoft SQL Server?

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

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

Получаем список всех таблиц с помощью представления информационной схемы

В Microsoft SQL Server есть специальная схема, предназначенная для получения информации о метаданных — это INFORMATION_SCHEMA. Подробно о ней мы говорили в материале – «Представления информационной схемы Microsoft SQL Server».

Для того чтобы получить информацию о таблицах в БД, существует представление информационной схемы TABLES. Допустим, нам нужно получить просто перечень таблиц, для этого пишем следующий SQL запрос (в моей тестовой базе всего одна таблица).

В данном случае мы указали условие table_type=’BASE TABLE’, так как данное представление содержит еще и информацию о представлениях (VIEW).

Недостатком данного способа является то, что никакой больше полезной информации в представлении INFORMATION_SCHEMA.TABLES нет.

Получаем список всех таблиц с помощью системного представления sys.tables

Альтернативным способом и более удачным, если Вам нужна дополнительная информация о таблицах, является способ с использованием системного представления sys.tables. Давайте сейчас с помощью этого представления выведем список таблиц, а также получим дополнительные сведения о дате создания таблицы и дате последнего редактирования этой таблицы.

Получаем список всех таблиц с помощью системной процедуры

Еще одним способом получения списка таблиц в базе данных Microsoft SQL Server является использование системной процедуры sp_Tables, но, на мой взгляд, данный способ менее удобный, к тому же он возвращает также немного сведений, по сути, только название таблиц.

Для того чтобы получить сведения о таблицах в БД нам нужно указать параметр @table_type со значением ‘TABLE’, так как данная процедура возвращает еще данные о представлениях и системных таблицах. Следует обратить внимание на то, что значение параметра нужно заключать в двойные кавычки, а каждое значение типа в одиночные кавычки, так как через запятую возможно указывать несколько типов (например, для того чтобы получить таблицы и представления, в значение параметра нужно указать — «‘TABLE’, ‘VIEW’»). Также мы укажем параметр @table_owner, для того чтобы ограничиться одним владельцем.

Вот мы с Вами и рассмотрели три возможности получения списка таблиц в Microsoft SQL Server. Всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL, которую написал я, и в которой я подробно, и в то же время простым языком, рассказываю о языке SQL.

Заметка! Для профессионального изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL.

Источник

Как получить список всех таблиц в базе данных с помощью TSQL?

Каков наилучший способ получить имена всех таблиц в конкретной базе данных на SQL Server?

ОТВЕТЫ

Ответ 1

SQL Server 2005, 2008, 2012, 2014 или 2016:

Отображать только таблицы из определенной базы данных

Ответ 2

Ниже приведен список других типов объектов, которые вы можете искать:

  • AF: функция агрегации (CLR)
  • C: ограничение CHECK
  • D: ограничение по умолчанию или DEFAULT
  • F: ограничение FOREIGN KEY
  • L: Журнал
  • FN: Скалярная функция
  • FS: Склассическая (CLR) скалярная функция
  • Функция таблицы FT: сборка (CLR)
  • IF: встроенная таблица-функция
  • IT: Внутренняя таблица
  • P: Сохраненная процедура
  • Сохранение хранимой процедуры ПК: сборка (CLR)
  • PK: ограничение PRIMARY KEY (тип K)
  • RF: хранимая процедура фильтра репликации
  • S: системная таблица
  • SN: синоним
  • SQ: очередь обслуживания
  • TA: Сборка (CLR) DML-триггер
  • TF: функция таблицы
  • TR: SQL DML Trigger
  • TT: Тип таблицы
  • U: Таблица пользователей
  • UQ: ограничение UNIQUE (тип K)
  • V: Просмотреть
  • X: расширенная хранимая процедура

Ответ 3

Ответ 4

Ответ 5

Ответ 6

Ответ 7

Ответ 8

(стандарт SQL Server 2000, по-прежнему поддерживается в SQL Server 2005.)

Ответ 9

select * from sysobjects where xtype=’U’

Ответ 10

Ответ 11

Недостатком INFORMATION_SCHEMA.TABLES является то, что он также включает в себя системные таблицы, такие как таблицы dtproperties и MSpeer_. , без возможности рассказать их отдельно от ваших собственных таблиц.

Я бы рекомендовал использовать sys.objects (новая версия устаревшего sysobjects), который поддерживает исключение системных таблиц:

Ответ 12

В SSMS для получения всех полных имен таблиц в конкретной базе данных (например, «MyDatabase» ):

  • MyDatabase.dbo.MyTable1
  • MyDatabase.dbo.MyTable2
  • MyDatabase.MySchema.MyTable3
  • MyDatabase.MySchema.MyTable4
  • и др.

Ответ 13

Пожалуйста, используйте это. Вы получите имена таблиц вместе с именами схем:

Ответ 14

вы можете просто сначала выбрать свою базу данных

Ответ 15

Ответ 16

Благодаря Ray Vega, чей ответ дает все пользовательские таблицы в базе данных.

sp_helptext показывает базовый запрос, который суммируется с.

Ответ 17

Эта ссылка может предоставить гораздо больше информации об этом тема

Источник

Представления информационной схемы Microsoft SQL Server

В SQL Server от компании Microsoft есть несколько способов получения метаданных, одним из таких является обращение к специальным представлениям информационной схемы. Сегодня мы с Вами рассмотрим данную схему и узнаем, как с помощью нее получать полезные сведения об объектах в базе данных.

Что такое представления информационной схемы в SQL Server?

Представления информационной схемы – это системные представления, которые находятся в специальной схеме INFORMATION_SCHEMA. С помощью этих представлений можно получить информацию о метаданных объектов базы данных таких как: таблицы, представления, процедуры, колонки таблицы, параметры процедур (или функций) и другие.

INFORMATION_SCHEMA есть в каждой базе данных Microsoft SQL Server. Любое представление данной схемы содержит метаданные для всех хранящихся объектов в конкретной базе данных.

К схеме INFORMATION_SCHEMA имеют доступ все пользователи, однако получить сведения пользователь может только о тех объектах, на которые у него есть разрешения.

Обратиться к представлениям информационной схемы можно следующим образом

INFORMATION_SCHEMA.название представления.

В Microsoft SQL Server существуют следующие представления информационной схемы:

  • SCHEMATA – представление, с помощью которого можно получить все схемы базы данных;
  • TABLES – представление возвращает список всех таблиц и представлений в текущей базе данных. Содержит всего несколько столбцов: БД, схему, имя таблицы (или представления) и тип объекта («VIEW» — представление и «BASE TABLE» — таблица);
  • TABLE_CONSTRAINTS – с помощью данного представления можно получить сведения об ограничениях таблицы, таких как: CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY;
  • TABLE_PRIVILEGES – возвращает перечень прав доступа к таблице, которые предоставляются текущему пользователю;
  • VIEWS — представление, предназначенное для получения списка всех представлений в базе данных. Содержит несколько колонок, например, такие как БД, схему, имя представления, а также очень интересную колонку VIEW_DEFINITION – это SQL запрос, с помощью которого было создано это представление (только если это определение не более 4000 символов), также можно получить исходную инструкцию функцией OBJECT_DEFINITION(object_id);
  • VIEW_TABLE_USAGE — представление, с помощью которого можно получить список всех таблиц, которые используются в представлении. Иными словами, если Вы в определении предоставления используете несколько таблиц (например, объединяете их), то данное представление вернет Вам перечень этих таблиц;
  • VIEW_COLUMN_USAGE — с помощью этого представления можно получить список всех столбцов, которые есть в представлении, включая имя базовой таблицы;
  • COLUMNS – возвращает список столбцов таблицы. Содержит много полезной информации, например, такой как: тип данных столбца, идентификационный номер столбца, может ли столбец принимать значение NULL и т.д.;
  • COLUMN_PRIVILEGES – представление возвращает список прав доступа к колонке в таблице, если такие права назначались;
  • ROUTINES — с помощью данного представления можно получить список всех хранимых процедур и функций доступных пользователю. Данное представление возвращает много данных, включая столбец ROUTINE_DEFINITION, который содержит сведения об исходной SQL инструкции создавшей данную функцию или процедуру (только если это определение не более 4000 символов). Исходный SQL запрос можно также узнать с помощью функции OBJECT_DEFINITION(object_id);
  • ROUTINE_COLUMNS — возвращает список столбцов табличной функции. Другими словами, если у Вас в БД есть функции, которые возвращают таблицу, т.е. табличные функции, то с помощью этого представления Вы можете посмотреть, какие столбцы возвращают эти функции, включая сведения о типе данных, идентификационном номере и так далее;
  • PARAMETERS – возвращает перечень параметров хранимых процедур или пользовательских функций, включая краткое их описание (тип данных и т.д.);
  • DOMAINS – возвращает список псевдонимов типов данных;
  • COLUMN_DOMAIN_USAGE – представление можно использовать, для того чтобы получить список всех столбцов, которые используют псевдонимы типов данных;
  • DOMAIN_CONSTRAINTS – с помощью этого представления можно получить список псевдонимов типов данных, к которым привязано правило;
  • CHECK_CONSTRAINTS – представление возвращает список проверочных ограничений. Есть столбец CHECK_CLAUSE, который показывает текст инструкции ограничения;
  • REFERENTIAL_CONSTRAINTS – данное представление возвращает список ограничений FOREIGN KEY. Есть полезные столбцы, связанные со сведениями о правилах обновления и удаления, столбцы UPDATE_RULE (правило ON UPDATE) и DELETE_RULE (правило ON DELETE);
  • CONSTRAINT_COLUMN_USAGE – возвращает список столбцов, для которых определено ограничение, включая имя ограничения;
  • CONSTRAINT_TABLE_USAGE – возвращает список таблиц, в которых есть ограничения, включая имя ограничения;
  • KEY_COLUMN_USAGE – возвращает столбцы, которые ограничены как ключ.

Детальную информацию обо всех столбцах, которые возвращают представления информационной схемы, можете найти в официальной справке на сайте Microsoft.

Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.

Создаем исходные данные для примеров

Перед тем как перейти к примерам я создам тестовые объекты, для того чтобы Вы понимали, что за данные у меня есть в базе. Я добавлю таблицу с данными, создам простое представление и хранимую процедуру.

Инструкция создания таблицы

Инструкция добавления данных

Инструкция создания представления

Инструкция создания процедуры

Теперь можем переходить к рассмотрению примеров.

Пример 1. Получаем список всех хранимых процедур в MS SQL Server

Допустим, у Вас возникала необходимость получить список всех процедур с датой, когда они были созданы и текстом исходной SQL инструкции. Для этого мы можем написать следующий запрос.

В данном случае мы обратились к представлению ROUTINES информационной схемы. В качестве альтернативы можно использовать и системное представление sys.procedures, но только в этом случае для определения исходной SQL инструкции создания процедуры, нам нужно будет использовать функцию OBJECT_DEFINITION, так как в этом представлении такой информации нет.

Пример 2. Получаем список всех представлений в БД Microsoft SQL Server

Если Вам нужно получить список всех представлений, то можно использовать представление информационной схемы VIEWS.

Если Вам нужно больше информации о представлениях, то существует другой вариант получить данный список, например, системное представление sys.views (исходной SQL инструкции там также нет, но есть дата создания).

Пример 3. Получаем список и описание всех параметров хранимой процедуры в SQL сервере

Сейчас давайте рассмотрим случай, когда Вам необходимо получить список параметров процедуры, включая их тип данных. В этом случае можно использовать представление информационной схемы PARAMETERS (TestProcedure, как помните, имя моей тестовой процедуры).

В данном случае, также можно использовать альтернативный вариант, а именно системное представление sys.parameters, только в данном случае потребуется дополнительное объединение с системным представлением sys.types и вызов функции OBJECT_NAME.

На этом у меня все, надеюсь, статья была Вам полезной, всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL, которую написал я, и в которой я подробно, и в то же время простым языком, рассказываю о языке SQL, пока!

Источник

Оцените статью
REMNABOR
Adblock
detector