powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обновить данные в таблице, если уже такая запись существует?
3 сообщений из 3, страница 1 из 1
Как обновить данные в таблице, если уже такая запись существует?
    #35290506
Mons
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как обновить данные в таблице, если уже такая запись существует?
а если её нету, то добавить?

как это написать одним запросом в SQL

я сейчас делаю очень криво примерно так
Таблица1 состоит допустим из 3 полей: ID, ID_PLU, Value

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
For j =  1  To КолПолей -  1 
        
        Set rs1 = New ADODB.Recordset
        
        rs1.Open "Select * From  Таблица1 where ID=" & array1(j) & " and ID_PLU=" & array2(j) & "  ", cn1
            
        If Not rs1.EOF Then
            cn1.Execute ("UPDATE Таблица1 Set Таблица1.Value=" & array3(j) & "  where where ID=" & array1(j) & " and ID_PLU=" & array2(j)  & "  ", cn1
        Else
            cn1.Execute ("INSERT INTO Таблица1 VALUES (" & array1(j) & " , " & array2(j) " , " & array3(j) & " ")
        End If
        
        Set rs1 = Nothing
        
Next j

но когда 10 тыс записей, тоэто очень долго, помогите плиз как это сделать одним запросом если можно?
спасибо!
...
Рейтинг: 0 / 0
Как обновить данные в таблице, если уже такая запись существует?
    #35290528
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один из параметров команды Execute - RecordAffected. Если на таблице нет триггеров, то этот параметр вернет число измененных записей. Используйте его.
Есть другой вариант:
В строку SQL все запихать, оба предложения.
UPDATE ... ...;
IF @@RowCount = 0
INSERT ... ...
...
Рейтинг: 0 / 0
Как обновить данные в таблице, если уже такая запись существует?
    #35290652
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonsКак обновить данные в таблице, если уже такая запись существует?
а если её нету, то добавить?В какой БД?
Для ASA:
Код: plaintext
insert into Table1 (pk, f1, f2, f3) on existing update values(pks, fs1, fs2, fs3);
Для SQLite:
Код: plaintext
replace into Table1 (pk, f1, f2, f3) values(pks, fs1, fs2, fs3);

Кажется еще для некоторых баз есть подобные расширения диалектов. Остальные могут сделать так:
Код: plaintext
1.
insert into Table1 (pk) select pks where pks not in (select pk from Table1);
update Table1 f1=fs1, f2=fs2, f3=fs3 where pk=pks;

И вообще вопрос к VB отношения не имеет.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обновить данные в таблице, если уже такая запись существует?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]