Des Erreurs de SQL Server: “nombre maximum de préfixes. Le maximum est de 3” avec une sous-sélection de la syntaxe
Essayer de faire une croix-serveur de mise à jour:
UPDATE asilive.Contoso.dbo.lsipos
SET PostHistorySequencenNmber = (
SELECT TransactionNumber
FROM Transactions
WHERE Transactions.TransactionDate =
asilive.CMSFintrac.dbo.lsipos.TransactionDate)
Donne l'erreur:
Server: Msg 117, Level 15, State 2, Line 5
The number name 'asilive.Contoso.dbo.lsipos' contains more than
the maximum number of prefixes. The maximum is 3.
Ce qui donne?
Remarque: du réaménagement de la requête dans une moins lisible joindre le formulaire:
UPDATE asilive.Contoso.dbo.lsipos
SET PostHistorySequenceNumber = B.TransactionNumber
FROM cmslive.Contoso.dbo.lsipos A
INNER JOIN Transactions B
ON A.TransactionDate = B.TransactionDate
ne donne pas une erreur.
Voir aussi
- Des Erreurs de SQL Server: nombre maximum de préfixes. Le maximum est de 3. avec la syntaxe de jointure
(Traite de la syntaxe de jointure; cette question traite de la sous-sélectionnez la syntaxe)
Vous devez vous connecter pour publier un commentaire.
Oui, c'est juste la façon dont il est. Vous ne pouvez pas avoir plus de trois préfixes, donc vous devez utiliser un alias de quand vous allez sur 3 (principalement lors de l'adhésion à d'autres serveurs). C'est comme ça depuis Sql Server 7 (et peut-être avant que je ne me souviens pas sur 6.5).
Si vous voulez rendre votre code plus lisible lors de l'utilisation d'alias, de spécifier de façon plus significative alias, ce qui va rendre beaucoup plus facile à suivre.
Exemple:
update
ne permet pas un alias. Donc, je suis toujours curieux de voir un de travailler la syntaxe.