2009-08-13 7 views
2

Est-il possible d'appeler une fonction définie par l'utilisateur dans TSQL sans le qualificatif de portée. Je veux appelertsql fonctions définies par l'utilisateur

select myfunc(var) 

et non

select dbo.myfunc(var) 
select myschema.myfunc(var) 

Il est possible dans tous les autres DB que j'ai jamais travaillé avec (7 autres), il doit être possible tsql aussi.

Si je suis connecté à mon DB/schéma Je n'ai pas pour qualifier une référence de table ... je peux faire

select * from mytable 

sans qualification ... pourquoi ne sont pas les appels de fonction orthogonale pour ça?

Répondre

3

De Executing User-Defined Functions (Database Engine) sur MSDN:

... fonctions scalaires doivent être invoquées en utilisant au moins les deux parties nom de la fonction ...

L'écriture entre les lignes ici est que le nom du schéma n'est pas requis pour les tables UDF, mais je ne l'ai pas testé personnellement.

+0

Bon RTFM merci. Bien que cette réponse causera d'énormes problèmes pour le portage de logiciels hérités à MSSQL 2008 ... Je ne suis pas impressionné – telesphore4

+0

Il n'y a pas beaucoup de documentation sur le "pourquoi" partie. Désolé, ce n'était pas une réponse satisfaisante. –

Questions connexes