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

Тема в разделе "SQL", создана пользователем Salta, 20 фев 2007.

Статус темы:
Закрыта.
  1. Salta

    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'.

    В чем дело?
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Замени ! на точку.
     
  3. Salta

    Salta Гость

    Не получилось...
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Что говорит?

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

    Salta Гость

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Для: sax_ol
    Наверное что-то типа того. Только WHERE еще, наверное.
     
  7. ooo

    ooo Гость

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

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

    Salta Гость

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

    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-таблицу можно тоже вставить значение в первую таблицу.

    Вы со мной согласны?
     
  10. Salta

    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.


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

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

Поделиться этой страницей