выберите top 700 * из objectaer работает только в sqlserver 2005, но 2008

#ms-access #oledb

#ms-access #oledb

Вопрос:

как я могу выбрать последнюю запись 700 в моей базе данных Access? Я использую это

     private string strsqlcommandBeta = "select top 700 * from objectaer  "  
    " order by objectdate desc"  
    "  ";
  

но я получаю эту ошибку

Оператор SELECT содержит зарезервированное слово или имя аргумента, которое написано с ошибкой или отсутствует, или пунктуация неправильная.

Комментарии:

1. Заголовок вашего вопроса предполагает, что вы используете SQL Server, но теги указывают на обратное. Не могли бы вы уточнить?

2. да, извините, я использую access, на моем онлайн-сервере я также использую sqlserver 2008, а на моем локальном компьютере я использую sqlserver 2005, но в моем коде я использую access, sql server 2005 и sql server 2008 в названии были ошибкой

Ответ №1:

Оператор SELECT содержит зарезервированное слово или имя аргумента, которое написано с ошибкой или отсутствует, или пунктуация неправильная.

Обычно это результат использования ключевого слова в качестве имени поля в одной из ваших таблиц или в качестве псевдонима в вашем запросе. Если вы не «заключите в кавычки» ключевое слово как имя поля с [] , вы получите сообщение об ошибке.

Хотя я не вижу, чтобы какие-либо ключевые слова использовались ненадлежащим образом в вашем запросе, попробуйте это:

 SELECT TOP 700 * FROM [objectaer] ORDER BY [objectdate] DESC
  

Также возможно, что проблема не в вашем запросе, скорее всего, если objectaer созданный вами в Access объект запроса содержит неправильный синтаксис, вы, скорее всего, видите ошибку для objectaer вместо этого.

Ответ №2:

Попробуйте «Ограничить 700» в конце

 Select * from bla bla bla Limit 700