powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Стандарт для синтаксиса UPDATE запроса...
9 сообщений из 9, страница 1 из 1
Стандарт для синтаксиса UPDATE запроса...
    #34211411
IgorCCS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос вида.
Код: plaintext
1.
2.
3.
update 
table1 t1 join table2 t2 on t1.id=t2.id
set ...
where t2.parent=...
который нормально на ASA9 работает.

Для его работы на MS SQL 2005 он должен быть переписан в виде:
Код: plaintext
1.
2.
3.
4.
update 
t1
set ...
FROM table1 t1 join table2 t2 on t1.id=t2.id
where t2.parent=...

Пробуя разные вариации не получается 1 и тот же запрос выполнить на 2 СУБД.
Каким должен быть запрос для того что-бы выполниться и там и там (ну и на ... :)).
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34211415
IgorCCS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как ни крути запросы а получается что ASA хочет после UPDATE видеть имя таблицы (не псевдоним) а МС имя таблицы хочет только во FROM видеть.
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34211531
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по идее запрос вида 2 должен работать и в ASA

в моем АСА это отработало:
Код: plaintext
1.
2.
3.
create table a(id int, txt char( 30 ));
create table b(id int, txt char( 30 ));

update a set txt='' from b where a.id=b.id
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34211651
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то в ASA и так должно работать тоже:

update table1 t1
set ...
FROM table1 t1 join table2 t2 on t1.id=t2.id
where t2.parent=...

Анатолий
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34212285
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
update table1 t1
set ...
where t2.parent=...
and exists (
select * from table2 t2 where t1.id = t2.id
)
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34218899
IgorCCS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry.по идее запрос вида 2 должен работать и в ASA

в моем АСА это отработало:
Код: plaintext
1.
2.
3.
create table a(id int, txt char( 30 ));
create table b(id int, txt char( 30 ));

update a set txt='' from b where a.id=b.id


Получилось сделать чтобы работало и там и там
Код: plaintext
1.
update a set txt=t2.txt from b t2 where a.id=t2.id
Теперь надо на Oracle проворить

Анатолий ИвановВообще-то в ASA и так должно работать тоже:
update table1 t1
set ...
FROM table1 t1 join table2 t2 on t1.id=t2.id
where t2.parent=...

Анатолий

MasterZiv
Код: plaintext
1.
2.
3.
4.
5.
6.
update table1 t1
set ...
where t2.parent=...
and exists (
select * from table2 t2 where t1.id = t2.id
)


MS Sql ругается на
Код: plaintext
1.
update table1 t1
Он не допускает использование псевдонимов в этой секции
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34219301
Oleg1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
update owner.table1
  set ...
  where parent=... and
    exists (select * from owner.table2 t2
        where owner.table1.id = t2.id)
Это единственный вариант, работающий на всех перечисленных серверах.
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34219546
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще imho идея написания универсального SQL'я довольно вредная. Поскольку: а) резко ограничивает возможности; б) не позволяет писать оптимальные конструкции.

Лучше использовать тот или иной вариант запроса в зависимости от целевого сервера.
А еще лучше - не писать "универсальные" системы, работающие с "любой" СУБД. Хорошую "универсальную" систему написать невозможно, поскольку универсальность потребует как минимум отказаться от всех преимуществ каждой из СУБД. Тем более невозможно написать систему, работающую и с MSSQL/ASA, и с Oracle - эти СУБД слишком разные, и синтаксис SQL'я - самое несущественное различие между ними.
...
Рейтинг: 0 / 0
Стандарт для синтаксиса UPDATE запроса...
    #34219633
IgorCCS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Буду разбираться и думать.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Стандарт для синтаксиса UPDATE запроса...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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