Как я могу извлечь sprocs / таблиц / функций из определенной схемы? - PullRequest
0 голосов
/ 27 сентября 2011

Мне нужно извлечь все таблицы, хранимые процедуры и функции из базы данных SQL Server 08, которые находятся в определенной схеме.Я мог бы отфильтровать отображаемые элементы в Management Studio, а затем выполнить Script As -> Drop/Create для каждого из них, но я действительно хотел бы избежать этого, поскольку в схеме довольно много элементов.

Есть ли способ сделать это?

Редактировать:

Я посмотрел на этот вопрос (возможный дубликат я только что нашел).Я бы предпочел не использовать внешний инструмент, как это было предложено, поскольку он работает, и мне нужно получить разрешение на его использование.Также мне не нужен один большой Create Database скрипт - мне нужны отдельные скрипты для каждой таблицы / sproc / функции.

Ответы [ 3 ]

2 голосов
/ 27 сентября 2011
select 
   object_name(obj.object_id), 
   sch.name, 
   co.definition 
from 
   sys.objects obj 
   join sys.schemas sch on sch.schema_id = obj.schema_id
   left join sys.sql_modules co on co.object_id = obj.object_id
where 
   sch.name = 'DBO' --here goes your schema name

- Таблица syscoments использовалась еще в SQL 2000, и вам больше не следует ее использовать, но когда это так, это таблица sys.syscomments

1 голос
/ 27 сентября 2011

Visual Studio 2010 Premium включает поддержку инструментов проекта базы данных, которая позволяет выполнять сравнение схем базы данных между базами данных (где вы можете фильтровать только к указанной схеме базы данных) и извлекать все объекты (и конфигурацию) в действующей базе данных в VS2010проект базы данных, создание сценария для объекта.

См. Работа с проектами базы данных .

0 голосов
/ 27 сентября 2011

Что-то основано на

SELECT [text] FROM [syscomments]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...