2008-09-26 14 views
12

Während eine Anwendung von SQL 2005 auf SQL Server Compact Edition Portierung, fand ich, dass ich in den Hafen brauchen diesen Befehl ein:SQL Compact wählen top 1

SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL 

Aber SQL Server Compact Edition nicht das TOP Schlüsselwort unterstützen . Wie kann ich diesen Befehl portieren?

Antwort

0

Sieht aus wie es in Kompakt nicht getan werden kann. Sie müssen alle Jobs lesen oder einen SqlReader erstellen und nur den ersten lesen.

2

Diese auf Ihre Frage etwas orthogonal ist.

SQL Server Compact Edition funktioniert nicht wirklich gut mit SQL-Abfragen. Sie erhalten eine viel bessere Leistung, wenn Sie Tabellen direkt öffnen. In .NET müssen Sie dazu die CommandText -Eigenschaft des Befehlsobjekts auf den Tabellennamen und die CommandType-Eigenschaft auf CommandType.TableDirect festlegen.

Wenn Sie die Ergebnisse filtern möchten, benötigen Sie einen Index für die Tabelle in den Spalten, nach denen Sie filtern möchten. Geben Sie den zu verwendenden Index an, indem Sie die Eigenschaft IndexName festlegen und SetRange zum Festlegen des Filters verwenden.

Sie können dann so viele oder so wenige Datensätze lesen, wie Sie möchten.

0

Gut gefunden einen Grund. Management Studio trägt und verwendet eine eigene Version von SQL Server Compact. Sehen Sie mehr in http://en.wikipedia.org/wiki/SQL_Server_Compact.

SQL Server Management Studio 2005 kann lesen und CE 3.0 und 3.1 Datenbankdateien (mit dem neuesten Service Pack) ändern, aber das SQL Server Management Studio 2008 aus der "Katmai" 2008 CTP-Version (oder später) wird benötigt, um Dateien der Version 3.5 zu lesen.

Die RTM von SQL Server Management Studio 2008 und Microsoft Visual Studio Express 2008 SP1 erstellen können, ändern und Abfrage CE 3.5 SP1 Datenbank Dateien.