• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Разница Update запросов в Sql и Access

  • Автор темы Salta
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Salta

Заранее спасибо, что выделяете драгоценное время для меня!

Есть просьба.

У меня есть запрос Accessе:

[sql]UPDATE Table1 INNER JOIN Table2 ON Table1.Code = Table2.Code2 SET Table2.Code2 = Table1!Code
WHERE ((Table2.Code2 =Table1!Code));[/sql]

т.е. в условиях отбора и обновления построила ссылку в соответствующую таблицу(знаком !).
Результат запроса меня устраивает.

Задача:

В SQL точно такой запрос вызывает проблему и выводит следующее сообщение:

Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'INNER'.
Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near 'Table2'.

В чем дело?
 
E

European

Что говорит?

Уверены, что правильный код показали. Мне кажется запрос бессмысленным
 
S

Salta

Дело в том, что у меня есть 2 таблицы в SQL.
В одной таблице (Table1) одно поле пустое.
В это же таблице есть оеще одно непустое поле и следует отметить что через это поле можно вставить значение из второй таблицы(Табле2) в первую таблицу.
 
E

European

Для: sax_ol
Наверное что-то типа того. Только WHERE еще, наверное.
 
O

ooo

Если в таблице1 столбцы 1 и 2 , 2столбец связан с 2столбцом таблицы2. Присвоим значение Code1 в пустой столбец1 :

update Table1 set Table1.Code1=(select Table2.Code1 from Table2
where Table2.Code2=Table1.Code2);
 
S

Salta

Пробовала!
Но выходит такое сообщение:
String or binary data would be truncated.
The statement has been terminated.
 
S

Salta

А как Вам нравится такой запрос:

update Table1 set Table1.поле1=(select table2.поле1 from
table2 where Table2.Поле2=table1.поле2)
from table1, table1 w
where w.поле0= T_Property.поле0

но выходит такое же сообщение

String or binary data would be truncated.
The statement has been terminated.

что-то не то получается у меня



или вот вот это

UPDATE table1
SET
table1.поле1 = (select w3.code from table1 w inner join table2 w2
on w.поле3=w2.code inner join table3 w3 on w3.code=w2.поле2 where
w.поле3=w2.code )
from table1, table3
where table1.поле5=table3.code


здесь я использую третью таблицу которая является именно соббственником нужного поля, но,..думаю она не нужна потому, что через 2-таблицу можно тоже вставить значение в первую таблицу.

Вы со мной согласны?
 
S

Salta

или точнее так


uPDATE table1
SET table1.искомое=w3.нужное
FROM table1 w, таблица3 w3, таблица2 w2
WHERE w.контактное = w2.контактное and
table1.искомое = (select w3.нужное from table1 w inner join таблица2 w2
on w.контактное=w2.контактное inner join таблица3 w3 on w3.нужное =w2.искомое where
w.контактное=w2.контактное )




но сервер мне сообщает


Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.


что происходит?

в подзапросе я должна убирать условие ?
наверное да..сейчас попробую
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!