2009-11-13 5 views
1

Possible en double:
Transact-SQL shorthand join syntax?SQL "* =" opérateur

Je couru à travers un script T-SQL qui fait quelque chose comme ça dans la clause where:

... 
where o.obj_code *= c.prv_code 

Je n'arrive pas à trouver de documentation sur l'opérateur * =. Quelqu'un peut-il expliquer son utilisation et peut-être pointer vers une documentation à ce sujet? Est-ce spécifique à T-SQL?

+1

Dupliquer: http://stackoverflow.com/questions/557767/transact-sql-shorthand-join-syntax (parmi beaucoup d'autres iirc) – ChristopheD

+0

Merci d'avoir créé un lien vers le doublon, pour une raison qui n'a pas été soulevée mes recherches. –

+3

Sa notation abrégée pour la sécurité du travail par l'obscurité. – Juliet

Répondre

4

Syntaxe de jointure externe obsolète.
Dans la liste des Deprecated Engine Features:

Utilisation de *= et =*
Utilisez la syntaxe de jointure ANSI. Pour plus d'informations, voir FROM (Transact-SQL).

+0

+1 pour mentionner que ça va le chemin du dodo ... – gbn

0

Il s'agit d'une ancienne syntaxe de jointure externe non-ANSI. Ne l'utilisez pas. Heres et MSDN reference.

1

* = est une ancienne façon de faire des jointures externes à gauche provenant d'Oracle. J'ai trouvé une mention dans les documents de SQL Server une fois comme quelque chose qu'ils ont fortement recommandé de ne pas faire.

Voici quelques informations sur ce à partir de MS:

Transact-SQL Joins

+0

Oracle est à peine le seul délinquant, ici. –

+2

Oracle? Sybase, oui. Oracle est où o.obj_code = c.prv_code (+) – Dave

+0

C'est vrai, mais c'est de là que je l'ai appris, donc je m'en tiens à blâmer Oracle. –

0

C'est l'ancienne syntaxe pour une jointure externe gauche, et a été dépréciée à partir de SQL Server 2005 vers le haut.