MSSQL - =?iso-8859-2?Q?kolejno=B6=E6?= przetwarzania przy UPDATE
Jacek Osiecki - 14-12-2006 16:08
MSSQL - =?iso-8859-2?Q?kolejno=B6=E6?= przetwarzania przy UPDATE
Witam,
Czy mo?na w MSSQL wp?ywa? na kolejno?? przetwarzania wierszy przy komendzie UPDATE?
Mam tabel?, w której jedno z pól jest zale?ne od poprzednich, a kluczem jest id_kasy (int) i data (datetime). Je?li przyjdzie informacja z wcze?niejsz? dat? ni? ostatnia transakcja dla danej id_kasy, to wstawiam j? tam gdzie to wynika z pola "data" i nast?pnie musz? przelecie? po wszystkich polach o id_kasy takim jak podane i data>@podana_data. Z oczywistych wzgl?dów musz? to robi? we w?a?ciwej kolejno?ci, wed?ug pola data.
Czy jest to mo?liwe, czy te? nie mog? liczy? na proste UPDATE i musz? u?y? jakich? bardziej z?o?onych konstrukcji?
Pozdrawiam, -- Jacek Osiecki joshua@ceti.pl GG:3828944 "To nie logika, to polityka" (c) Kabaret pod Wydrwigroszem 2006
Marcin A. Guzowski - 14-12-2006 16:08
Jacek Osiecki napisa?(a): > Witam, > > Czy mo?na w MSSQL wp?ywa? na kolejno?? przetwarzania wierszy przy komendzie > UPDATE?
Od razu uwaga: nie mo?na my?le? o operacji typu UPDATE w kategoriach uporz?dkowania, kolejno?ci. To klasyczne dzia?anie na nieuporz?dkowanym zbiorze rekordów i tego na pewno zmieni? si? nie da.
Okre?lone operacje mog? w pewnym sensie narzuci? kolejno?? przetwarzania wierszy - jednak b?dzie to tylko efekt uboczny tych?e operacji, a nie zamierzona realizacja w/w celu.
Mo?na wi?c kombinowa? z wymuszaniem u?ycia indeksu czy sortowaniem w podzapytaniu dostarczaj?cym rekordy do update itp. Nie mamy jednak ?adnej pewno?ci, ?e którego? dnia SQL Server nie wykona tych operacji inaczej ni? dzie? wcze?niej.
> Mam tabel?, w której jedno z pól jest zale?ne od poprzednich, a kluczem jest > id_kasy (int) i data (datetime). Je?li przyjdzie informacja z wcze?niejsz? > dat? ni? ostatnia transakcja dla danej id_kasy, to wstawiam j? tam gdzie to > wynika z pola "data" i nast?pnie musz? przelecie? po wszystkich polach o > id_kasy takim jak podane i data>@podana_data. Z oczywistych wzgl?dów musz? > to robi? we w?a?ciwej kolejno?ci, wed?ug pola data.
> Czy jest to mo?liwe, czy te? nie mog? liczy? na proste UPDATE i musz? u?y? > jakich? bardziej z?o?onych konstrukcji?
Szczerze mówi?c, to nie bardzo wiem jak zamierza?by? si? odwo?ywa? w logice zapytania do rekordu "poprzedniego". (je?eli mo?esz, to zademonstruj, to mo?e sporo wyja?ni?)
W ka?dym razie opisane sytuacja to klasyczny scenariusz u?ycia kursora. A to z kolei oznacza, ?e ca?? funkcjonalno?? przyda?oby si? zaimplementowa? w inny sposób :)
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Jacek Osiecki - 14-12-2006 16:09
Dnia Fri, 01 Dec 2006 20:08:07 +0000, Marcin A. Guzowski napisa?(a): > Jacek Osiecki napisa?(a): >> Czy mo?na w MSSQL wp?ywa? na kolejno?? przetwarzania wierszy przy komendzie >> UPDATE?
[...]
> Mo?na wi?c kombinowa? z wymuszaniem u?ycia indeksu czy > sortowaniem w podzapytaniu dostarczaj?cym rekordy do > update itp. Nie mamy jednak ?adnej pewno?ci, ?e którego? > dnia SQL Server nie wykona tych operacji inaczej ni? dzie? > wcze?niej.
No, tak w?a?nie przypuszcza?em :)
>> Czy jest to mo?liwe, czy te? nie mog? liczy? na proste UPDATE i musz? u?y? >> jakich? bardziej z?o?onych konstrukcji?
> Szczerze mówi?c, to nie bardzo wiem jak zamierza?by? si? > odwo?ywa? w logice zapytania do rekordu "poprzedniego". > (je?eli mo?esz, to zademonstruj, to mo?e sporo wyja?ni?)
My?l?, ?e po prostu zrealizuj? to "rze?niczo" - przy u?yciu while, przetwarzaj?c po kolei wiersze spe?niaj?ce warunek min(data)>@data.
> W ka?dym razie opisane sytuacja to klasyczny scenariusz > u?ycia kursora. A to z kolei oznacza, ?e ca?? funkcjonalno?? > przyda?oby si? zaimplementowa? w inny sposób :)
Podejrzewam ?e tak, ale co chwila zmienia si? koncepcja tego jak to dra?stwo ma dzia?a?... Na razie tak jak mówi? - robi? jak rze?nik, a potem si? zobaczy.
Pozdrawiam, -- Jacek Osiecki joshua@ceti.pl GG:3828944 "To nie logika, to polityka" (c) Kabaret pod Wydrwigroszem 2006
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
MSSQL Express czy Oracle Express
Pobierananie danych z innej bazy danych w MSSQL
Migracja MSSQL 2005 CTP na 2005 Express
MSSQL , funkcja pobierajaca sama date (bez czasu) w funkcji
[mssql] insert do tabeli na podstawie danych z innej tabeli
zanotowane.pldoc.pisz.plpdf.pisz.plponland.htw.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 |
|