Как посмотреть таблицу в sql server management studio
Перейти к содержимому

Как посмотреть таблицу в sql server management studio

  • автор:

Просмотр определения таблицы

Свойства таблицы в SQL Server можно отобразить с помощью SQL Server Management Studio или Transact-SQL.

Разрешения

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

Использование среды SQL Server Management Studio

Отображение свойств таблицы в окне «Свойства»
  1. В обозревателе объектов выберите таблицу, для которой необходимо просмотреть свойства.
  2. Щелкните таблицу правой кнопкой мыши и выберите в контекстном меню пункт Свойства . Дополнительные сведения см. в разделе Свойства таблицы — SSMS.
Создание скрипта CREATE TABLE для существующей таблицы

Вы можете создать скрипты для существующих объектов из обозреватель объектов в SSMS. Дополнительные сведения см. в разделе Создание скриптов.

Использование Transact-SQL

Отображение свойств таблицы
  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
  2. На стандартной панели выберите пункт Создать запрос.
  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере выполняется системная хранимая процедура sp_help для возврата всех сведений о столбцах для указанного объекта.
EXEC sp_help 'dbo.mytable'; 

Дополнительные сведения см. в разделе sp_help.

По умолчанию SSMS сопоставляет сочетание клавиш для sp_help с Alt-F1 . Выделите имя объекта в скрипте, который вы хотите увидеть, например dbo.mytable , и нажмите , Alt-F1 чтобы выполнить предыдущий пример скрипта. Дополнительные сведения см. в разделе Сочетания клавиш SSMS.

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

SELECT s.name as schema_name, t.name as table_name, c.* FROM sys.columns AS c INNER JOIN sys.tables AS t ON t.object_id = c.object_id INNER JOIN sys.schemas AS s ON s.schema_id = t.schema_id WHERE t.name = 'mytable' AND s.name = 'dbo'; 

Next Steps

  • sys.columns (Transact-SQL)
  • sys.tables (Transact-SQL)
  • sys.schemas (Transact-SQL)
  • Формирование скриптов (среда SQL Server Management Studio)
  • Сочетания клавиш SSMS

Получить список таблиц в пользовательских БД в SQL Server

Добрый день. Подскажите запрос на получение списка таблиц пользовательских (не системных) баз данных в SQL Server 2008.

Отслеживать
51.3k 87 87 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
задан 6 июл 2011 в 7:33
285 2 2 золотых знака 4 4 серебряных знака 17 17 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Есть ещё вариант SELECT * FROM INFORMATION_SCHEMA.TABLES

Он более кроссплатформенный относительно СУБД, т.к. INFORMATION_SCHEMA является частью стандарта SQL, а sys.objects нет.

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

Отслеживать
ответ дан 6 июл 2011 в 9:04
8,885 26 26 серебряных знаков 66 66 бронзовых знаков
Запомню, спасибо
6 июл 2011 в 10:52

//Выдает все базы данных на сервере
SELECT name FROM sys.databases

//Выдает все таблицы в Базе данных
SELECT * FROM sys.objects WHERE type in (N’U’)

Отслеживать
ответ дан 6 июл 2011 в 7:43
841 1 1 золотой знак 9 9 серебряных знаков 26 26 бронзовых знаков

Второй запрос возвращает список таблиц из СИСТЕМНОЙ базы master. Наверное я неправильно сформулировал вопрос: Нужно получать список таблиц из баз, которые созданы пользователем, т.е. создана база БАЗА1 с таблицами ТАБЛИЦА1, ТАБЛИЦА2 и т.д. Нужно получить список этих таблиц: ТАБЛИЦА1, ТАБЛИЦА2

6 июл 2011 в 8:07

Второй запрос выведет вам таблицы из базы данных, которую вы выберите. USE [MyDataBase] для выбора базы данных

Руководство. просмотреть и изменить данные в таблице

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

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

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

  1. Щелкните правой кнопкой мыши таблицу Products в обозревателе объектов SQL Server и выберите Просмотреть данных.
  2. Запустится редактор данных. Обратите внимание на строки, которые мы добавили в таблицу в предыдущих процедурах.
  3. Щелкните правой кнопкой мыши таблицу Fruits в обозревателе объектов SQL Server и выберите Просмотреть данные.
  4. В редакторе данных введите 1 в поле Id и True в поле Perishable, а затем нажмите клавишу ВВОД или TAB, чтобы убрать фокус с новой строки и выполнить фиксацию в базу данных.
  5. Повторите описанный выше шаг: введите в таблицу значения 2, False и 3, False. Обратите внимание, что при изменении строки их всегда можно вернуть с помощью клавиши ESC.
  6. Чтобы просмотреть изменения в виде скрипта, нажмите кнопку Скрипт на панели инструментов. Кроме того, можно сохранить изменения в SQL-файле скрипта для последующего использования, нажав кнопку Вывести скрипт в файл.
  7. Щелкните правой кнопкой мыши базу данных Trade в обозревателе объектов SQL Server и выберите пункт Новый запрос. В редакторе введите select * from dbo.PerishableFruits и нажмите кнопку Выполнить запрос, чтобы вернуть данные, отображаемые в представлении PerishableFruits .

Обратная связь

Были ли сведения на этой странице полезными?

Поиск данных и объектов в базе данных MS SQL Server с помощью бесплатной утилиты dbForge Search

Описание общей потребности в поиске данных и объектов в базе данных

Поиск данных, а также хранимых процедур, таблиц и других объектов в базе данных является достаточно актуальным вопросом в том числе и для C#-разработчиков, а также и для .NET-разработки в целом.

Достаточно часто может возникнуть ситуация, при которой нужно найти:

  1. объект базы данных (таблицу, представление, хранимую процедуру, функцию и т д)
  2. данные (значение и в какой таблице располагается)
  3. фрагмент кода в определениях объектов базы данных

Сначала рассмотрим как можно осуществлять поиск данных и объектов в базе данных с помощью встроенных средств самой СУБД, а затем рассмотрим как это сделать с помощью бесплатной утилиты dbForge Search.

Поиск с помощью встроенных средств самой СУБД

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

Поиск таблицы по имени

select [object_id], [schema_id], schema_name([schema_id]) as [schema_name], [name], [type], [type_desc], [create_date], [modify_date] from sys.all_objects where [name]='Employee'; 

Результат может быть примерно такой:

  1. идентификаторы объекта и схемы, где располагается объект
  2. название этой схемы и название этого объекта
  3. тип объекта и описание этого типа объекта
  4. даты и время создания и последней модификации объекта

Поиск всех объектов по подстроке в имени

select [object_id], [schema_id], schema_name([schema_id]) as [schema_name], [name], [type], [type_desc], [create_date], [modify_date] from sys.all_objects where [name] like '%Project%'; 

Результат может быть примерно такой:

Как видно из результата, здесь подстроку “Project” содержат не только две таблицы Project и ProjectSkill, но и также некоторые первичные и внешние ключи.

Чтобы понять кому именно принадлежат данные ключи, добавим в вывод поле parent_object_id и его имя и схему, в которой он располагается следующим образом:

Поиск всех объектов по подстроке в имени с выводом родительских объектов

select ao.[object_id], ao.[schema_id], schema_name(ao.[schema_id]) as [schema_name], ao.parent_object_id, p.[schema_id] as [parent_schema_id], schema_name(p.[schema_id]) as [parent_schema_name], p.[name] as [parent_name], ao.[name], ao.[type], ao.[type_desc], ao.[create_date], ao.[modify_date] from sys.all_objects as ao left outer join sys.all_objects as p on ao.[parent_object_id]=p.[object_id] where ao.[name] like '%Project%'; 

Результатом будет вывод таблицы с детальной информацией о родительских объектах, т е где определены первичные и внешние ключи:

В запросах используются следующие системные объекты:

  • таблица sys.all_objects
  • скалярная функция schema_name

Чтобы найти строковое значение по всем таблицам базы данных, можно воспользоваться следующим решением. Упростим данное решение и покажем как можно найти например значение “Ramiro” с помощью следующего скрипта:

Поиск строковых значений по подстроке во всех таблицах базы данных

set nocount on declare @name varchar(128), @substr nvarchar(4000), @column varchar(128) set @substr = '%Ramiro%' declare @sql nvarchar(max); create table #rslt (table_name varchar(128), field_name varchar(128), [value] nvarchar(max)) declare s cursor for select table_name as table_name from information_schema.tables where table_type = 'BASE TABLE' order by table_name open s fetch next from s into @name while @@fetch_status = 0 begin declare c cursor for select quotename(column_name) as column_name from information_schema.columns where data_type in ('text', 'ntext', 'varchar', 'char', 'nvarchar', 'char', 'sysname', 'int', 'tinyint') and table_name = @name set @name = quotename(@name) open c fetch next from c into @column while @@fetch_status = 0 begin --print 'Processing table - ' + @name + ', column - ' + @column set @sql='insert into #rslt select ''' + @name + ''' as Table_name, ''' + @column + ''', cast(' + @column + ' as nvarchar(max)) from' + @name + ' where cast(' + @column + ' as nvarchar(max)) like ''' + @substr + ''''; print @sql; exec(@sql); fetch next from c into @column; end close c deallocate c fetch next from s into @name end select table_name as [Table Name], field_name as [Field Name], count(*) as [Found Mathes] from #rslt group by table_name, field_name order by table_name, field_name drop table #rslt close s deallocate s 

Результат выполнения может быть таким:

Здесь выводятся имена таблиц и в каких столбцах хранится значение, содержащие подстроку “Ramiro”. А также количество найденных входов данной подстроки для найденной пары таблица-колонка.

Чтобы найти объекты, в определениях которых есть заданный фрагмент кода, можно воспользоваться следующими системными представлениями:

  1. sys.sql_modules
  2. sys.all_sql_modules
  3. sys.syscomments

Поиск фрагмента кода в определениях объектов базы данных

select obj.[object_id], obj.[name], obj.[type_desc], sc.[text] from sys.syscomments as sc inner join sys.objects obj on sc.[id]=obj.[object_id] where sc.[text] like '%code snippet%'; 

Здесь будет выведен идентификатор, название, описание и полное определение объекта.

Поиск с помощью бесплатной утилиты dbForge Search

Однако, более удобно поиск производить с помощью готовых хороших инструментов. Одним из таких инструментов является dbForge Search.

Для вызова этой утилиты в окне SSMS нажмите на кнопку .

Появится следующее окно поиска:

Обратите внимание на верхнюю панель (слева направо):

  1. можно переключать режим поиска (ищем DDL (объекты) или данные)
  2. непосредственно что ищем (какую подстроку)
  3. учитывать ли регистр, искать точное соответствие слову, искать вхождения:

  • группировать результат по типам объектов — кнопка
  • выбрать нужные типы объектов для поиска:

  • также можно задать несколько баз данных для поиска и выбрать экземпляр MS SQL Server
  • Это все в режиме поиска объектов, т е когда включен DDL:

    В режиме поиска данных изменится только выбор типов объектов:

    А именно будут доступны для выбора только таблицы, где и хранятся собственно сами данные:

    Теперь как и раньше найдем все вхождения подстроки “Project” в названиях объектов:

    Как видно, был выбран режим поиска по DDL-объектам, заполнено что ищем-строка “Project”, остальное все было по умолчанию.

    При выделении найденного объекта внизу отображается код определения данного объекта или всего его родительского объекта.

    Также можно переместить навигацию на найденный объект, щелкнув на кнопку :

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

    Обратите внимание, что выводятся даже те таблицы, в которых есть поля, в именах которых содержится подстрока “Project”. Однако, напомним, что режим поиска можно менять: искать полное соответствие/частичное/учитывать регистр или нет.

    Теперь найдем значение “Ramiro” по всем таблицам:

    Обратите внимание, что внизу отображаются все строки, в которых содержится подстрока “Ramiro” выбранной таблицы Employee.

    Также можно переместить навигацию к найденному объекту, нажав как и ранее на кнопку :

    Таким образом мы можем искать нужные объекты и данные в базе данных.

    Заключение

    Были рассмотрены способы поиска как самих данных, так и объектов в базе данных как с помощью встроенных средств самой СУБД MS SQL Server, так и с помощью бесплатной утилиты dbForge Search.

    Также от компании Devart есть и ряд других бесплатных готовых решений, полный список которых можно посмотреть здесь.

    Источники

    • Search_Script.sql
    • SSMS
    • dbForge Search
    • Документация по Microsoft SQL
    • Бесплатные решения от компании Devart

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *