zapytanie MSSQL?
Jarek - 23-11-2006 00:12
zapytanie MSSQL?
Witam
Mecze sie juz dlugo z takim zapytaniem:
drop wyjscie1
select imsto_item into wyjscie1 from imsto where imsto_store like 'MAGPT'
create table wyjscie1 ( Tekst char(15) not null )
i gdy zostawie drop tak jak jest pojawia sie komunikat niepoprawna skladnia a gdy wykomenduje drop to z kolei: to pojawia sie komunikat ze taka wyjscie1 jest juz w bazie:( Poradzcie jak ma wygladac ta skladnia bo sam juz nie wiem.
Pozdrawiam Jarek
Marcin A. Guzowski - 23-11-2006 00:12
Jarek napisał(a): > drop wyjscie1 > > select imsto_item > into wyjscie1 > from imsto > where imsto_store like 'MAGPT' > > create table wyjscie1 ( > Tekst char(15) not null > ) > i gdy zostawie drop tak jak jest pojawia sie komunikat niepoprawna skladnia > a gdy wykomenduje drop to z kolei: to pojawia sie komunikat ze taka wyjscie1 > jest juz w bazie:( > Poradzcie jak ma wygladac ta skladnia bo sam juz nie wiem.
Konstrukcja SELECT colA, colB... INTO tab1 FROM tab2
powoduje automatyczne utworzenie tabeli określonej przez INTO (tabela ta nie może istnieć w momencie wykonania zapytania).
DROP powinien być obudowany warunkiem sprawdzającym istnienie obiektu, a CREATE TABLE w ogóle jest niepotrzebne (z tego powodu dostajesz błąd 'obiekt już istnieje', gdyż tworzy go SELECT).
A tak a propos, to zupełnie nie rozumiem dlaczego dałeś CREATE TABLE tworzące tabelę, do której _wcześniej_ chciałeś ładować rekordy. Przecież tak na logikę: nie możesz używać obiektu, który dopiero będzie utworzony (już nawet pomijając, że akurat tutaj odpowiednia tabela będzie stworzona automatycznie - ale o tym mogłeś nie wiedzieć).
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Marcin A. Guzowski - 23-11-2006 00:12
Marcin A. Guzowski napisał(a): > Jarek napisał(a): >> drop wyjscie1
A tak btw, to nie ma czegoś takiego jak DROP obiekt. Jest natomiast DROP TABLE tabela, DROP DATABASE baza itd.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Jarek - 23-11-2006 00:12
czyli cos takie powinno byc oki?
drop tablica
select imsto_item into tablica from imsto where imsto_store like 'MAGPT'
a create table dodalem na koncu bo myslalem ze to nie ma znaczenia w jakim miejscu znajduje sie create (pozostalos po Javie:) Wielkie dzieki za pomoc.
Pozdrawiam Jarek
Marcin A. Guzowski - 23-11-2006 00:12
Jarek napisał(a): > czyli cos takie powinno byc oki? > > drop tablica > > select imsto_item > into tablica from imsto > where imsto_store like 'MAGPT'
Przecież post wcześniej Ci napisałem, że nie ma czegoś takiego jak DROP nazwa_obiektu, tylko DROP TYP_OBIEKTU nazwa_obiektu, czyli:
DROP TABLE tablica
Czy mój program do usenetu niewyraźnie wysłał literki?
Poradziłem też, żebyś dodał sprawdzenie istnienia obiektu, bo DROP nieistniejącej tabeli będzie skutkował błędem:
IF OBJECT_ID('tablica') IS NOT NULL DROP TABLE tablica
P.S. W bazach danych na określenie obiektu z rekordami stosujemy termin tabela a nie tablica.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
Jarek - 24-11-2006 00:02
> Czy mój program do usenetu niewyraźnie wysłał literki? nie, to byl moj blad > Poradziłem też, żebyś dodał sprawdzenie istnienia > obiektu, bo DROP nieistniejącej tabeli będzie skutkował > błędem: > > IF OBJECT_ID('tablica') IS NOT NULL > DROP TABLE tablica oki probuje tak: IF OBJECT_ID('wyjscie') IS NOT NULL DROP TABLE wyjscie
--drop table wyjscie select imsto_item into wyjscie --kasowanie tabeli?? from imsto where imsto_store like 'MAGPT'
ale pojawia sie: 0 record(s) affected
0 record(s) affected
17955 record(s) affected
i nie widze tabelki?Jak wiec ma to wygladac?Przegrzebalem pare tutoriale ale nic ciekawego nie znalazlem:(
Pozdrawiam jarek
Marcin A. Guzowski - 24-11-2006 00:03
Jarek napisał(a): > oki probuje tak: > IF OBJECT_ID('wyjscie') IS NOT NULL > DROP TABLE wyjscie > > --drop table wyjscie > select imsto_item > into wyjscie > --kasowanie tabeli?? > from imsto > where imsto_store like 'MAGPT' > ale pojawia sie: > 0 record(s) affected > 0 record(s) affected > 17955 record(s) affected
Pewnie wywołałeś więcej kodu, niż tutaj napisałeś (stąd dodatkowe komunikaty affected), w każdym razie ostatni message wskazuje na wstawienie do tabeli 'wyjscie' prawie 18 tyś rekordów.
> i nie widze tabelki?Jak wiec ma to wygladac?Przegrzebalem pare tutoriale ale > nic ciekawego nie znalazlem:(
Nie tutoriale, ale zdrowy rozsądek jest tutaj potrzebny. Jeżeli wywołałeś powyższy batch, to tabela na pewno powstała - możesz mi wierzyć lub nie. Natomiast Twoje stwierdzenie, że jej nie widzisz.. cóż jedni mają problemy ze wzrokiem, inny np. nie odświeżą listy tabel w Enterprise Managerze/Management Studio. Jedni i drudzy tabeli "nie zobaczą".
Nie bardzo mogę już pomóc, możesz do powyższego kodu dodać na końcu:
SELECT count(*) FROM wyjscie
żeby się przekonać, ile rekordów tam trafiło.
-- Pozdrawiam, Marcin Guzowski http://guzowski.info
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
zanotowane.pldoc.pisz.plpdf.pisz.plquentinho.opx.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 |
|