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

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

Salta

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

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

У меня есть запрос 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'.

В чем дело?
 
04.09.2006
2 566
3
#4
Что говорит?

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

Salta

#5
Дело в том, что у меня есть 2 таблицы в SQL.
В одной таблице (Table1) одно поле пустое.
В это же таблице есть оеще одно непустое поле и следует отметить что через это поле можно вставить значение из второй таблицы(Табле2) в первую таблицу.
 
O
#7
Если в таблице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

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

Salta

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

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

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


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.


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

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