powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить список объектов в таблице?
13 сообщений из 13, страница 1 из 1
Как получить список объектов в таблице?
    #40022457
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Подскажите, каким способом можно получить список всех объектов в таблице, ключи, триггеры, индексы итд?
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022463
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

через метаданные.
список всех системных объектов можно получить примерно таким запросом:
Код: sql
1.
select distinct object_name(object_id) from sys.all_columns where name = 'object_id' and object_schema_name(object_id) = 'sys' order by 1;



а уже на основе него выбирать нужные вьюхи/функции что бы получать конкретные данные в зависимости от необходимого типа.

sp_help кстати показывает инфо о таблице в достаточно полном объеме информации
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022477
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

Код: sql
1.
2.
select * from sys.objects where parent_object_id = xxxx
select * from sys.indexes where object_id = xxx 
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022511
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, то что нужно. Подскажите, а есть хранимка которая создает скрипт по аналогии CREATE to из контекстного меню студии?
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022515
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
хранимка которая создает скрипт по аналогии CREATE to из контекстного меню студии?


sp_helptext ?

пс
аа, это для таблицы CREATE нужен ... тогда не то :(
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022518
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

импортируйте проект базы в VS, будет вам и белка, будет и свисток.
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022527
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
Спасибо, то что нужно. Подскажите, а есть хранимка которая создает скрипт по аналогии CREATE to из контекстного меню студии?

стандартной хранимки нет
есть разный самопис вроде такого:
https://stackoverflow.com/questions/706664/generate-sql-create-scripts-for-existing-tables-with-query
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022644
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
teCa
Спасибо, то что нужно. Подскажите, а есть хранимка которая создает скрипт по аналогии CREATE to из контекстного меню студии?

стандартной хранимки нет
есть разный самопис вроде такого:
https://stackoverflow.com/questions/706664/generate-sql-create-scripts-for-existing-tables-with-query


Да, что-то подобное, но здесь только сама структура и индексы, грубо говоря, у меня есть список таблиц, для каждой я выполню:

Код: sql
1.
2.
select * from sys.objects where parent_object_id = xxxx
select * from sys.indexes where object_id = xxx 



По полученному результату я должен сформировать скрипт, который создаст копию этой таблицы со всеми объектами, индексы, ограничения, триггеры.
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022646
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
komrad
пропущено...

стандартной хранимки нет
есть разный самопис вроде такого:
https://stackoverflow.com/questions/706664/generate-sql-create-scripts-for-existing-tables-with-query


Да, что-то подобное, но здесь только сама структура и индексы, грубо говоря, у меня есть список таблиц, для каждой я выполню:

Код: sql
1.
2.
select * from sys.objects where parent_object_id = xxxx
select * from sys.indexes where object_id = xxx 



По полученному результату я должен сформировать скрипт, который создаст копию этой таблицы со всеми объектами, индексы, ограничения, триггеры.
Закат солнца вручную. Владислав Колосов уже написал выше, чем надо пользоваться.
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022652
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael,

Не совсем понял его сообщение, можно более развернуто?
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022706
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

установите Visual Studio, хоть бы Community, с компонентами разработка базы данных и импортируйте в решение проект вашей базы. Получите таблицы с ключами, индексами и прочим. Разрабатывайте базу в проекте, а не на сервере.
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40022718
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

В Visual Studio есть workload под названием SSDT (SQL Server Data Tools).

Позволяет создавать проекты БД, писать код, а главное - деплоить это все, и схему и код.
Также есть Schema Compare, который может селективно создавать / обновлять объекты базы, в зависимости от вашего выбора. Из него же можно сгенерить deployment script, который потом можно прогнать на базе вручную (полезно, если вам надо выложить новую версию на несколько баз).
Есть SQL Refactor, умеющий автоматизировать некоторые базовые вещи (Rename, Move to Schema, Expand Wildcards, что-то еще).
Есть Dependency Tracker, который находит все объекты, ссылающиеся на / использующие некоторый данный объект, причем до уровня столбцов.

Дополнительная плюшка в том, что данная версия бесплатна для всех, в т.ч. и бизнесов, так что стандартная отмазка "У нас нет свободных лицензий VS" у начальства не прокатывает. Ставите VS Community Edition, при установке выбираете только Data Tools (иначе лицензия будет нужна), создаете проект SQL Server Database, импортируете в него схему из имеющейся базы, дописываете при необходимости функционал, после чего открываете Schema Compare и в нем источником выбираете ваш проект, а назначением - БД, куда нужно задеплоить изменения. Сравниваете, отключаете ненужные объекты (я обычно исключаю Role Membership, Permission, User, потому что они почти всегда environment-specific, но бывает что и другие вещи из сравнения исключать приходится - сертификаты, например). Потом, в зависимости от задачи - либо делаете Update прямо оттуда, либо Generate Script. Далее по обстоятельствам.
...
Рейтинг: 0 / 0
Как получить список объектов в таблице?
    #40023233
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
teCa,

В Visual Studio есть workload под названием SSDT (SQL Server Data Tools).

Позволяет создавать проекты БД, писать код, а главное - деплоить это все, и схему и код.
Также есть Schema Compare, который может селективно создавать / обновлять объекты базы, в зависимости от вашего выбора. Из него же можно сгенерить deployment script, который потом можно прогнать на базе вручную (полезно, если вам надо выложить новую версию на несколько баз).
Есть SQL Refactor, умеющий автоматизировать некоторые базовые вещи (Rename, Move to Schema, Expand Wildcards, что-то еще).
Есть Dependency Tracker, который находит все объекты, ссылающиеся на / использующие некоторый данный объект, причем до уровня столбцов.

Дополнительная плюшка в том, что данная версия бесплатна для всех, в т.ч. и бизнесов, так что стандартная отмазка "У нас нет свободных лицензий VS" у начальства не прокатывает. Ставите VS Community Edition, при установке выбираете только Data Tools (иначе лицензия будет нужна), создаете проект SQL Server Database, импортируете в него схему из имеющейся базы, дописываете при необходимости функционал, после чего открываете Schema Compare и в нем источником выбираете ваш проект, а назначением - БД, куда нужно задеплоить изменения. Сравниваете, отключаете ненужные объекты (я обычно исключаю Role Membership, Permission, User, потому что они почти всегда environment-specific, но бывает что и другие вещи из сравнения исключать приходится - сертификаты, например). Потом, в зависимости от задачи - либо делаете Update прямо оттуда, либо Generate Script. Далее по обстоятельствам.


Звучит круто, спасибо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить список объектов в таблице?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]