Синтаксис SQL для тестирования объектов перед созданием представлений и функций - PullRequest
1 голос
/ 15 марта 2010

Я пытаюсь выяснить синтаксис для создания представления (или функции), но только если выход из зависимой сборки CLR.

Я пробовал оба

IF EXISTS (SELECT name FROM sys.assemblies WHERE name = 'MyCLRAssembly') 
begin
create view dbo.MyView as select GETDATE() as C1
end

и

IF EXISTS (SELECT name FROM sys.assemblies WHERE name = 'MyCLRAssembly') 
create view dbo.MyView as select GETDATE() as C1
go

Ни одна из них не работает. Я получаю

Сообщение 156, Уровень 15, Состояние 1, Строка 2 Неверный синтаксис рядом с ключевым словом 'Вид'.

Как это можно сделать?

Ответы [ 2 ]

1 голос
/ 15 марта 2010

Вот обходной путь

if object_id('MyView','V') is null
    exec ( 'create view dbo.MyView as select GETDATE() as C1' )
1 голос
/ 15 марта 2010

Это странно для меня, но то, что я вижу в MSDN : «CREATE VIEW должен быть первым оператором в пакете запроса» Похоже, вы не можете создавать представления внутри оператора IF.

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