Подтвердить что ты не робот

SQL Compact select top 1

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

SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL

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

4b9b3361

Ответ 1

SELECT TOP(1) Id 
FROM tblJob 
WHERE Holder_Id IS NULL

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

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

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

Ответ 2

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

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

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

Затем вы можете читать как можно больше или меньше записей.

Ответ 3

Я использовал метод 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

Ответ 4

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

Ответ 5

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

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

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