SQL Server Tool для сценария отбрасывания операторов, которые имеют перед ними операторы проверки существования? - PullRequest
1 голос
/ 08 декабря 2008

Я пробовал SQL Server 2008 Management Studio и другие сторонние инструменты для создания сценариев всех объектов базы данных (представлений, SP и таблиц), и я не могу получить ничего, чтобы сгенерировать сценарий с одним файлом, в котором оператору отбрасывания предшествует " Если существует .. "оператор для каждого объекта.

Мне нужен оператор «если существует», поэтому я не получаю никаких ошибок, если объект не существует. Инструмент не должен быть для SQL Server 2008.

Ответы [ 2 ]

4 голосов
/ 08 декабря 2008

SQL 2008 Management Studio может сделать это. Щелкните правой кнопкой мыши имя базы данных и выберите «Задачи» -> «Создать сценарии» ... установите флажок «Все объекты базы данных», а затем на следующем экране установите «Включить, если НЕ СУЩЕСТВУЕТ» в «Истина» (это также будет делать, если существует… хотя это не очевидно) и Script Drop to True. Я думаю, что это будет работать для вас.

0 голосов
/ 08 декабря 2008

Установите 'results to text' и запустите следующий скрипт. Вырежьте и вставьте результаты в окно и запустите. При желании вы можете изменить сценарий, чтобы отфильтровать определенные таблицы.

select 'if object_id ('''+ s.name + '.' + t.name + 
       ''') is not null drop table ' + s.name + '.' + t.name +
       char (10) + 'go'
  from sys.schemas s
  join sys.tables t
    on t.schema_id = s.schema_id

даст результаты, как:

--------------------------------------------------------------------------
if object_id ('dim.Dim1') is not null drop table dim.Dim1
go
if object_id ('dim.TestSnapshot') is not null drop table dim.TestSnapshot
go
if object_id ('fact.Test') is not null drop table fact.Test
go
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...