SQL Compact выберите топ 1 - PullRequest
       14

SQL Compact выберите топ 1

13 голосов
/ 26 сентября 2008

При переносе приложения из SQL 2005 в SQL Server Compact Edition я обнаружил, что мне нужно перенести эту команду:

SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL

Но SQL Server Compact Edition не поддерживает ключевое слово TOP. Как я могу портировать эту команду?

Ответы [ 5 ]

30 голосов
/ 26 сентября 2008
SELECT TOP(1) Id 
FROM tblJob 
WHERE Holder_Id IS NULL

Насколько мне известно, скобки нужны.

ссылка: http://technet.microsoft.com/en-us/library/bb686896.aspx

дополнение: аналогично, только для версии 3.5 и выше

2 голосов
/ 26 сентября 2008

Это немного ортогонально вашему вопросу.

SQL Server Compact Edition на самом деле не очень хорошо работает с SQL-запросами. Вы получаете намного лучшую производительность, открывая таблицы напрямую. В .NET вы делаете это, устанавливая свойство CommandText объекта команды равным имени таблицы, а свойство CommandType - CommandType.TableDirect.

Если вы хотите отфильтровать результаты, вам понадобится индекс для таблицы по столбцу (столбцам), по которым вы хотите фильтровать. Укажите индекс для использования, установив свойство IndexName и используйте SetRange для установки фильтра.

Затем вы можете прочитать столько записей, сколько захотите.

1 голос
/ 13 августа 2010

Я использовал метод Fill в SqlCEDataAdapter. Вы можете сделать:

DbDataAdapter.Fill (DataSet, Int32, Int32, String) Добавляет или обновляет строки в указанном диапазоне в DataSet, чтобы они соответствовали тем в источнике данных, используя имена DataSet и DataTable. Поддерживается .NET Compact Framework.

http://msdn.microsoft.com/en-ie/library/system.data.common.dbdataadapter.fill(v=VS.80).aspx

0 голосов
/ 20 октября 2008

Хорошо нашел причину. Студия управления несет и использует свою собственную версию SQL Server Compact. Подробнее в http://en.wikipedia.org/wiki/SQL_Server_Compact.

SQL Server Management Studio 2005 может прочитать и изменить CE 3.0 и 3.1 файлы базы данных (с последними пакет обновления), но SQL Server Студия управления 2008 от «Катмай» 2008 CTP релиз (или позже) требуется для чтения файлов версии 3.5.

RTM управления SQL Server Studio 2008 и Microsoft Visual Studio Express 2008 SP1 можно создать, изменить и запросить базу данных CE 3.5 SP1 файлы.

0 голосов
/ 26 сентября 2008

Похоже, это не может быть сделано в компактном. Вы должны прочитать все задания или создать SqlReader и просто прочитать первое.

...