2015-09-07 2 views
0

первого поста здесь ...Использования IF NOT EXISTS для создания функций

У меня есть несколько сценариев SQL, которые я должен вручную запускать каждый раз, чтобы создать недостающие функции и хранимые процедуры, когда я установить SSRS Reporting Suite.

В идеале я хотел бы автоматизировать это в одном фрагменте кода, поэтому смотрел инструкцию IF NOT EXIST.

Моя идея была бы ... проверить, если функция выходов, если Y перейти к следующему сценарию, если N, запустить функцию Создать сценарий затем перейти к следующему сценарию:

IF NOT EXISTS 
(SELECT * FROM sys.objects 
WHERE object_id = OBJECT_ID(N'[report].[fnR_ActiveCustomers]') 
AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) 

CREATE FUNCTION [report].[fnR_ActiveCustomers] 
(... etc etc 

Когда я начинаю это я получаю : «create function должна быть единственным выражением в партии».

Может ли кто-нибудь помочь мне, пожалуйста?

Благодаря Ли

ответ

0

Использование GO между отдельным партиями:

IF NOT EXISTS 
(SELECT * FROM sys.objects 
WHERE object_id = OBJECT_ID(N'[report].[fnR_ActiveCustomers]') 
AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) 
Go 
CREATE FUNCTION [report].[fnR_ActiveCustomers] 
(... etc etc 
+0

Вы уверены, что это работает? – Shnugo

+0

Да, это сработает. GO действует как разделитель пакетов, поэтому оператор Create будет находиться в отдельной партии, а также в первом операторе в пакете. –

+0

Попробуйте ... Без DROP ниже IF в первой партии нет смысла ... – Shnugo

 Смежные вопросы

  • Нет связанных вопросов^_^