=?ISO-8859-2?Q?[MS_SQL]_update_wielu_p=F3l_na_raz_z_selecta?=
koli - 20-03-2007 00:02
=?ISO-8859-2?Q?[MS_SQL]_update_wielu_p=F3l_na_raz_z_selecta?=
Witam,
chciałbym za jednym zamachem dokonać update wielu pól tabeli na raz, mając jako źródło select z innej tabeli. Zastanawiam się jak to zrobić w MS SQL. W Oracle działało zdaje się coś takiego:
update tabDocel td set (pole1,pole2,pole3) = (select pole1,pole2,pole3 from tabZr where tabZr.id = td.id) where td.id in (select id from tabId)
Gdy próbuję zrobić cos podobnego w TSQL to dostaję bład składni. Ma ktoś może pomysł jak to zapisać żeby zadziałało ?
pozdrawiam -- koli
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Piotr Borowski - 20-03-2007 00:02
" koli" <koliplus.WYTNIJ@gazeta.pl> wrote in message news:etlsel$2jj$1@inews.gazeta.pl... > Witam, > > chciałbym za jednym zamachem dokonać update wielu pól tabeli na raz, mając > jako źródło select z innej tabeli. Zastanawiam się jak to zrobić w MS SQL. > W > Oracle działało zdaje się coś takiego: > > update tabDocel td set (pole1,pole2,pole3) = > (select pole1,pole2,pole3 from tabZr where tabZr.id = td.id) > where td.id in (select id from tabId) > > Gdy próbuję zrobić cos podobnego w TSQL to dostaję bład składni. > Ma ktoś może pomysł jak to zapisać żeby zadziałało ?
dla kazdego pola musi byc osobny SELECT
update taks2 set name = (select name from task where id = 2), job = (select job from task where id = 2) where id in (1, 2)
-- Piotr Borowski sorry za literki, ale pisze z Leicester
Adam =?iso-8859-2?Q?Wi=C5=9Bniecki?= - 20-03-2007 00:02
On 2007-03-19, koli <koliplus.WYTNIJ@gazeta.pl> wrote: > Witam, > > chciałbym za jednym zamachem dokonać update wielu pól tabeli na raz, mając > jako źródło select z innej tabeli. Zastanawiam się jak to zrobić w MS SQL. W > Oracle działało zdaje się coś takiego: > > update tabDocel td set (pole1,pole2,pole3) = > (select pole1,pole2,pole3 from tabZr where tabZr.id = td.id) > where td.id in (select id from tabId) > > Gdy próbuję zrobić cos podobnego w TSQL to dostaję bład składni. > Ma ktoś może pomysł jak to zapisać żeby zadziałało ?
Za BOL:
UPDATE titles SET t.ytd_sales = t.ytd_sales + s.qty FROM titles t, sales s WHERE t.title_id = s.title_id
-- Adam Wiśniecki
Adam =?iso-8859-2?Q?Wi=B6niecki?= - 20-03-2007 00:02
On 2007-03-19, Piotr Borowski <PeterBilberry@gazeta.pl> wrote: > " koli" <koliplus.WYTNIJ@gazeta.pl> wrote in message > news:etlsel$2jj$1@inews.gazeta.pl... >> Witam, >> >> chciałbym za jednym zamachem dokonać update wielu pól tabeli na raz, mając >> jako źródło select z innej tabeli. Zastanawiam się jak to zrobić w MS SQL. >> W >> Oracle działało zdaje się coś takiego: >> >> update tabDocel td set (pole1,pole2,pole3) = >> (select pole1,pole2,pole3 from tabZr where tabZr.id = td.id) >> where td.id in (select id from tabId) >> >> Gdy próbuję zrobić cos podobnego w TSQL to dostaję bład składni. >> Ma ktoś może pomysł jak to zapisać żeby zadziałało ? > > dla kazdego pola musi byc osobny SELECT
Nie musi - patrz BOL lub post obok :)
-- Adam Wiśniecki
Piotr Borowski - 20-03-2007 00:02
"Adam Wiśniecki" <USUNTO.adam.wisniecki.TOROWNIEZ@gmail.com> wrote in message news:slrnevsvq8.8sh.USUNTO.adam.wisniecki.TOROWNIE Z@patek.netinfo.pl... > On 2007-03-19, Piotr Borowski <PeterBilberry@gazeta.pl> wrote: >> " koli" <koliplus.WYTNIJ@gazeta.pl> wrote in message >> news:etlsel$2jj$1@inews.gazeta.pl... >>> chciałbym za jednym zamachem dokonać update wielu pól tabeli na raz, >>> mając >>> jako źródło select z innej tabeli. Zastanawiam się jak to zrobić w MS >>> SQL. >>> W >>> Oracle działało zdaje się coś takiego: >>> update tabDocel td set (pole1,pole2,pole3) = >>> (select pole1,pole2,pole3 from tabZr where tabZr.id = td.id) >>> where td.id in (select id from tabId) >>> >>> Gdy próbuję zrobić cos podobnego w TSQL to dostaję bład składni. >>> Ma ktoś może pomysł jak to zapisać żeby zadziałało ? >> >> dla kazdego pola musi byc osobny SELECT > Nie musi - patrz BOL lub post obok :)
W pytaniu jest mowa o SELECT ktory jest zrodlem
-- Piotr Borowski sorry za literki, ale pisze z Leicester
wloochacz - 20-03-2007 00:02
[ciach] > W pytaniu jest mowa o SELECT ktory jest zrodlem No i w czym problem? Patrz post obok :-)
PS. Leicester nie determinuje nie używania polskich krzaczków...
Adam =?iso-8859-2?Q?Wi=B6niecki?= - 20-03-2007 00:02
On 2007-03-19, Piotr Borowski <PeterBilberry@gazeta.pl> wrote: > "Adam Wiśniecki" <USUNTO.adam.wisniecki.TOROWNIEZ@gmail.com> wrote in > message > news:slrnevsvq8.8sh.USUNTO.adam.wisniecki.TOROWNIE Z@patek.netinfo.pl... >> On 2007-03-19, Piotr Borowski <PeterBilberry@gazeta.pl> wrote: >>> " koli" <koliplus.WYTNIJ@gazeta.pl> wrote in message >>> news:etlsel$2jj$1@inews.gazeta.pl... >>>> chciałbym za jednym zamachem dokonać update wielu pól tabeli na raz, >>>> mając >>>> jako źródło select z innej tabeli. Zastanawiam się jak to zrobić w MS >>>> SQL. >>>> W >>>> Oracle działało zdaje się coś takiego: >>>> update tabDocel td set (pole1,pole2,pole3) = >>>> (select pole1,pole2,pole3 from tabZr where tabZr.id = td.id) >>>> where td.id in (select id from tabId) >>>> >>>> Gdy próbuję zrobić cos podobnego w TSQL to dostaję bład składni. >>>> Ma ktoś może pomysł jak to zapisać żeby zadziałało ? >>> >>> dla kazdego pola musi byc osobny SELECT >> Nie musi - patrz BOL lub post obok :) > > W pytaniu jest mowa o SELECT ktory jest zrodlem
Nie wiem co dokładnie chce uzyskać pytający ale takie zapytanie imo jest równoznaczne z podanym powyżej:
UPDATE tabDocel SET pole1 = tz.pole1, pole2 = tz.pole2 FROM tabDocel td, tabZr tz WHERE tz.id = td.id AND td.id IN ( ... )
-- Adam Wiśniecki
- 20-03-2007 00:02
=?ISO-8859-2?Q?Re:_[MS_SQL]_update_wielu_p=F3l_na_raz_z_selecta?=
Adam Wiśniecki <USUNTO.adam.wisniecki.TOROWNIEZ@gmail.com> napisał(a):
> Nie wiem co dokładnie chce uzyskać pytający ale takie zapytanie > imo jest równoznaczne z podanym powyżej: > > UPDATE tabDocel SET > pole1 = tz.pole1, > pole2 = tz.pole2 > FROM tabDocel td, tabZr tz > WHERE tz.id = td.id AND td.id IN ( ... ) > Faktycznie, to to samo tylko inaczej zapisane, o to mi chodziło ! dzięki za pomoc ;-)
pozdrawiam -- koli
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
[oracle] - Oracle SQL Developer - co to jest SID?
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
konkurs SQL Injection - 10 PLN na GSM dla pierwszej osoby, ktora dostanie sie do bazy
Re: Gdzie mozna jeszcze kupic Microsoft SQL 2000 Enterprise Edition??
Oprogramowanie wyznaczające różnicę DDL
zanotowane.pldoc.pisz.plpdf.pisz.pllubiatowo.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|