Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UPDATE (SELECT top 50 Percent ... работает в Access, не работает в MSSQL 
:(
    Опции темы
Pankon
Дата 29.5.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: нет
Всего: 5



Запрос
Код

UPDATE 
 (SELECT top 50 Percent * FROM Tabelle1, Tabelle2  WHERE Tabelle1.ID=Tabelle2.ID) AS T1 
SET  T1.F1 = "w"
работает в Access, не работает в MSSQL  smile . Синтаксическая ошибка на первой скобке '('....

Можно ли иметь подобный запрос в MSSQL  smile 
 
PM MAIL   Вверх
andrx
Дата 29.5.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Андрей
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 16.12.2005
Где: Киев

Репутация: нет
Всего: 4



Pankon добрый день!

Я тоже сегодня целый день пытаюсь решить подобную проблему. Мне необходимо для первых N записей сделать update. Вот пока что до чего дошел, может поможет :
Код
UPDATE TABLE1
SET FLAG = 1
FROM (SELECT TOP 10 * FROM TABLE1 WHERE FLAG<>1) AS TMP_TABLE1
WHERE TMP_TABLE1.NN = TABLE1.NN

Моя задача состоит в том, чтобы обрабатывать данные порциями и для этого мне нужно помечать записи прошедшие обработку. Выше приведенная конструкция по идеи должна решить такую проблему (т.е. пометить 10 первых обработанных записей ), но для этого необходимо два дополнительных поля NN(номер по порядку) и FLAG.

Если в таблице есть какой-нибудь уникальный идентификатор записей, то в приведенном примере его можно использовать вместо NN. 
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
boevik
Дата 29.5.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



Вопрос по MSSQL, поэтому и расположить логичнее в соотвествуещем разделе.
По сути вопроса.
Перед запуском query установите максимальное количество записей для обработки следующей командой:
Код

SET ROWCOUNT 50


Отменить:
Код

SET ROWCOUNT 0

 


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
andrx
Дата 29.5.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Андрей
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 16.12.2005
Где: Киев

Репутация: нет
Всего: 4



boevik !
дааа...  smile 
оказывается все намного легче и проще !
 
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
Pankon
Дата 29.5.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: нет
Всего: 5



Всем Спасибо!
Кстати, итересно, что 
SQL Server 2005 Books Online
Код
UPDATE 
    [ TOP( expression ) [ PERCENT ] ] 
....

Обратите внимание TOP...  smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.