2010-03-15 6 views
1

J'essaie de comprendre la syntaxe de création d'une vue (ou d'une fonction) mais uniquement si un ensemble CLR dépendant existe.SQL Syntaxe pour tester les objets avant de créer des vues et des fonctions

J'ai essayé deux

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

et

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

Ni travail. Je reçois

Msg 156, niveau 15, état 1, ligne 2 syntaxe incorrecte près du mot-clé 'view'.

Comment cela peut-il être fait?

Répondre

1

est ici solution

if object_id('MyView','V') is null 
    exec ('create view dbo.MyView as select GETDATE() as C1') 
+0

cette langue est donc cassé –

+0

Eh bien, c'est pourquoi il y a tant de contournements ... – Sparky

+0

Mais la solution de contournement est cassé. Cela signifie que je n'obtiens pas la vérification de la syntaxe/la mise en forme des couleurs sur mon code d'affichage au moment du design. –

1

Ceci est étrange pour moi, mais ce que je vois dans MSDN est "CREATE VIEW doit être la première instruction dans un lot de requêtes." Il semble donc que vous ne puissiez pas créer de vue à l'intérieur de l'instruction IF.

Questions connexes