pourquoi J'essaie ceci P> row_number () code> n'est pas reconnu comme un nom de la fonction dans SQL Server 2008?
SELECT
ROW_NUMBER() AS Row, Lname
FROM MEN
GO
4 Réponses :
Vous semblez utiliser la mauvaise syntaxe. Voici un exemple utilisant la base de données AdventureWorks.
L'erreur serait "syntaxe incorrecte près de" Row_Number ", attendue" Over "", vient de tester sur SQL 2005.
GBN est correct: le message ERR est différent i> lorsque la fonction Row_Number est appelée sans autre clause. L'exception indique que le serveur n'est pas la version correcte.
Vérifiez votre compatibilité de la base de données; Assurez-vous qu'il soit réglé sur 90 ou plus. P>
Il semble qu'il y ait au moins 2 choses qui sont hors de la marque ici. p>
Row_Number sur () Code> Mots-clés / commande. Vous utilisez peut-être SQL 2008 Management Studio pour vous connecter à une machine SQL 2000? Vérifiez avec SELECT @@ version CODE> que votre DB est en effet un SQL 2008 DB. li>
ul>
Extension des 2 autres réponses ...
J'ai essayé exactement la même commande sur SQL 2005 avec 2 bases de données. p>
pour les deux niveaux de compatibilité 80 et 90, l'erreur est: p> Je ne peux que générer cette erreur sur une zone SQL 2000: p> Qu'est-ce que Mon autre pensée est Compat Niveau 65 qui ne peut pas être défini explicitement dans SQL Server 2005 et ci-dessus semble. Et je n'ai pas de bases de données héritées qui se trouvent à tester. P> p> SELECT @@ version < / code> dire? Je ferais 100% sûr que vous êtes sur la version que vous attendez ... p>
Si vous utilisez SSMS indiquant SQL Sever 2008, ne signifie pas nécessairement que vous vous connectez à la DB respective. Utilisation @@ version Pour vérifier la version de la DB, vous êtes connecté à car SQL 2005 utilise: [Row_Number () sur (commande par colname)] p>
@Gold: Avez-vous déjà eu ceci résolu?