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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранимая процедура, Update первой строки 
:(
    Опции темы
Grif13
Дата 2.11.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нужно написать хранимую процедуру, которая будет делать Update, для первой строки таблицы . Помогите...
PM MAIL   Вверх
Satana
Дата 2.11.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Grif13 А можно структурку таблицы и что конкретно будет обновляться?


--------------------
 Работай на себя 
www.abalentsev.com - Сайт портфолио.
www.pokushau.ru - Рецепты со всего мира.
PM MAIL WWW ICQ   Вверх
Grif13
Дата 2.11.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Таблица состоит из 3-х полей (допустим А, В, С).
Нужно в обнавит первую строку в этой таблице (все три значения поля)
PM MAIL   Вверх
boevik
Дата 2.11.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



А как/чем определяется первая строка?


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


Новичок



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

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



Первая строка определяется по полю с типом DateTime, по которому отсортированы записи в таблице.
PM MAIL   Вверх
boevik
Дата 3.11.2005, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Grif13 @ 3.11.2005, 08:34)
Первая строка определяется по полю с типом DateTime, по которому отсортированы записи в таблице.

Тогда просто.
Допустим поле А это поле сортировки.
Код

CREATE PROCEDURE spUpdateABC
@A datetime,
@B int,
@C char(10)

AS

UPDATE Table1
SET a = @A,
       b = @B,
       c = @C
WHERE a = (SELECT MIN(a) from Table1)




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


Новичок



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

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



А можно вместо Table1 указать запрос, типа

UPDATE (select top 1 a,b,c from table1)
SET a = @A,
b = @B,
c = @C

незнаю почему, но у меня так не прет.

или после UPDATE обязательно таблицу надо указывать

Это сообщение отредактировал(а) Grif13 - 3.11.2005, 09:35
PM MAIL   Вверх
boevik
Дата 3.11.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Не понятно почему "так не прет".
Вместо запроса можно указать view.
T.e. создать view, как select top 1 a,b,c from table1.
И апдейтить её.
Но с TOPом это не пройдет

Это сообщение отредактировал(а) boevik - 3.11.2005, 09:39


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


Новичок



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

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



А может есть другие варианты для замены первой строки в таблице
PM MAIL   Вверх
boevik
Дата 3.11.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Grif13, вместо поиска обходных путей, лучше расскажи почему нормальный вариант апдейта не работает.


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


Новичок



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

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



Ну ладно начну с начала:

Таблица состоит их 4 полей, 3 из которых входят в ключ.
Записи в таблице отсартирование по ключевым полям.

Нужно заменить первую строку в отсартированной таблице
PM MAIL   Вверх
boevik
Дата 3.11.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



А почему апдейт не проходит?
Выдает какую либо ошибку?

Можно попробовать выполнить DELETE and INSERT как одна транзакция.


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


Новичок



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

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



boevik спасибо за помощь

Нашел я варианn, хоть он мне и не навится может кому нибудь пригодится

Код

UPDATE dbo.Tabel1 
SET     [a]     = NewValue1,
     [b]     = NewValue2,
     [c]     = GetDate(),
     [d]     = NewValue3
from (SELECT  Top 1 * FROM Tabel1) AS temp1
where Tabel1.a=temp1.a
and Tabel1.b=temp1.b
and Tabel1.c=temp1.c



Если есть варианты лучше, пишите - буду благодарен.

Это сообщение отредактировал(а) Grif13 - 3.11.2005, 13:24
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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