2008-09-26 7 views
12

lors du portage d'une application à partir de SQL 2005 vers SQL Server Compact Edition, je trouve que je dois au port cette commande:SQL Compact sélectionner top 1

SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL 

Mais SQL Server Compact Edition ne prend pas en charge le mot-clé TOP . Comment puis-je porter cette commande?

Répondre

0

On dirait que cela ne peut pas être fait en compact. Vous devez lire tous les travaux, ou créer un SqlReader, et juste lire le premier.

2

Ce chiffre est légèrement orthogonale à votre question. En réalité, SQL Server Compact Edition ne fonctionne pas très bien avec les requêtes SQL. Vous obtenez de meilleures performances en ouvrant directement des tables. Dans .NET, vous le faites en définissant la propriété CommandText de l'objet de commande au nom de la table et la propriété CommandType à CommandType.TableDirect.

Si vous souhaitez filtrer les résultats, vous aurez besoin d'un index sur la table sur la colonne (s) que vous souhaitez filtrer. Spécifiez l'index à utiliser en définissant la propriété IndexName et utilisez SetRange pour définir le filtre.

Vous pouvez ensuite lire autant d'enregistrements que vous le souhaitez.

0

Bien trouvé une raison. Le studio de gestion transporte et utilise sa propre version de SQL Server Compact. Voyez plus au http://en.wikipedia.org/wiki/SQL_Server_Compact.

SQL Server Management Studio 2005 peut lire et modifier CE 3.0 et 3.1 fichiers de base de données (avec le dernier service pack ), mais le SQL Server Management Studio 2008 de la "Katmai" 2008 version CTP (ou plus tard) est requis pour lire les fichiers de la version 3.5.

Le RTM de SQL Server Management Studio 2008 et Microsoft Visual Studio Express 2008 SP1 peut créer, modifier et requête base de données CE 3.5 SP1 fichiers.

Questions connexes