2011-07-17 4 views
1

J'ai une fonction UDF dans SQL Server Express qui utilise newid() et a donc besoin d'une vue pour fonctionner. Où créer une vue à l'aide de SQL Server Express et VS 2010?'CREATE VIEW' dans SQL Server Express

Un clic droit sur les vues dans le schéma db et en cliquant sur ajouter une nouvelle vue ne charge qu'un concepteur visuel. En outre, l'éditeur SQL dans VS 2010 ne me permet pas d'ajouter une instruction CREATE VIEW au fichier de fonction. Ce qui suit est l'instruction SQL que je dois permettre à l'UDF d'avoir accès à:

create view getNewID as select newid() as new_id 
+2

Il y a tellement de parties de cette question qui me font aller 'Hunh?', Je ne sais pas par où commencer. (Ok, je vais aller avec un) Pourquoi ne pouvez-vous pas utiliser 'newid()' directement? –

+0

L'utilisation de newid() est interdite dans les fonctions UDF puisqu'elles sont non déterministes. Par conséquent, une vue doit être créée. – Jason

+1

Il existe de bonnes raisons pour lesquelles un FDU doit être déterministe. Contournement de ces règles ne va pas vous gagner quoi que ce soit, autre qu'un comportement indéfini. –

Répondre

0
  1. Installer SSMS
  2. SSMS intérieur, Ouvrir une nouvelle connexion à votre base de données
  3. Ouvrez une fenêtre de requête (Ctrl -N)
  4. pâte à create view getNewID as select newid() as new_id et appuyez sur F5 pour l'amener à exécuter
0

L'utilisation de newid() est interdite dans les fonctions UDF puisqu'elles sont non déterministes. Par conséquent, une vue doit être créée.