logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[SQL] Jak usunąć wszystkie tabele w SQL Server Management Studio EE 2005?

Kostek7 02 Gru 2009 23:01 6762 7
REKLAMA
  • #1 7338590
    Kostek7
    Poziom 27  
    Posty: 1245
    Pomógł: 92
    Ocena: 61
    Środowisko to M$ SQL Server Management Studio EE 2005. Mam ogromny problem z usunięciem wszystkich tabelek z mojej bazy danych.
    Tworzenie:
    
    CREATE TABLE Obywatel
    (
    	PESEL CHAR(11) PRIMARY KEY,
    	Imie VARCHAR(30),
    	Nazwisko VARCHAR(30),
    	Imie_ojca VARCHAR(30),
    	Imie_matki VARCHAR(30),
    	Plec VARCHAR(1),
    	Nazwisko_rodowec VARCHAR(30),
    	Data_zgonu DATE  
    );
    
    CREATE TABLE Zameldowanie
    (
    	Id INTEGER PRIMARY KEY,
    	PESEL CHAR(11) REFERENCES Obywatel, 
    	Typ VARCHAR(1),
    	Data_poczatku DATE,
    	Data_konca DATE	
    );
    
    CREATE TABLE Adres
    (	
    	Id INTEGER PRIMARY KEY,
    	Id_zameldowanie INTEGER REFERENCES Zameldowanie,
    	Ulica VARCHAR(30),
    	Miasto VARCHAR(30),
    	Kod_pocztowy VARCHAR(30),
    	Poczta VARCHAR(30),
    	Nr_domu INTEGER,
    	Nr_mieszkania INTEGER 
    		
    );
    
    CREATE TABLE Malzenstwo
    (
    	PESEL_M CHAR(11) REFERENCES Obywatel PRIMARY KEY,
    	PESEL_K CHAR(11) REFERENCES Obywatel,
    	Miejsce VARCHAR(30),
    	Data_zawarcia DATE,
    	Nr_aktu_slubu INTEGER 
    );			
    
    CREATE TABLE Rozwod
    (
    	Nr_aktu INTEGER PRIMARY KEY,
    	PESEL_M CHAR(11) REFERENCES Malzenstwo,
    	Data DATE,
    	Powod VARCHAR(30) 
    );
    
    CREATE TABLE Typ
    (
    	Symbol VARCHAR(30) PRIMARY KEY,
    	Nazwa  VARCHAR(30),
    	Terminowosc VARCHAR(1)
    );
    
    CREATE TABLE Wniosek 
    (
    	Id INTEGER PRIMARY KEY,
    	Symbol VARCHAR(30) REFERENCES Typ,
    	Powod_zlozenia VARCHAR(30),
    	Termin_zlozenia DATE  	
    );
    
    CREATE TABLE Decyzja
    (
    	Id_wniosku INTEGER REFERENCES Wniosek PRIMARY KEY,
    	Postanowienia VARCHAR(150),
    	Uzasadnienie  VARCHAR(150)
    );
    
    CREATE TABLE Dokument 
    (
    	Id INTEGER PRIMARY KEY,
    	Symbol VARCHAR(30) REFERENCES Typ,
    	Id_wniosku INTEGER REFERENCES Decyzja, 
    	Data_wydania DATE,
    	Powod_wydania VARCHAR(150) 		
    );
    
    CREATE TABLE Duplikat 
    (
    	Numer INTEGER PRIMARY KEY,
    	Id INTEGER REFERENCES Dokument
    );
    
    CREATE TABLE Sklada
    (
    	PESEL CHAR(11) REFERENCES Obywatel PRIMARY KEY,
    	Id INTEGER REFERENCES Wniosek
    );
    
    
    CREATE TABLE Odbiera
    (
    	PESEL CHAR(11) REFERENCES Obywatel PRIMARY KEY,
    	Id INTEGER REFERENCES Dokument
    );


    Usuwanie
    
    DROP TABLE Sklad;
    DROP TABLE Wniosek;
    DROP TABLE Typ;
    DROP TABLE Odbiera;
    DROP TABLE Duplikat;
    DROP TABLE Dokument;
    DROP TABLE Decyzja;
    DROP TABLE Rozwod;
    DROP TABLE Malzenstwo;			
    DROP TABLE Adres;
    DROP TABLE Zameldowanie;
    DROP TABLE Obywatel;
    

    Komunikat o błędzie:
    
    Msg 3701, Level 11, State 5, Line 1
    Cannot drop the table 'Sklad', because it does not exist or you do not have permission.
    Msg 3726, Level 16, State 1, Line 2
    Could not drop object 'Wniosek' because it is referenced by a FOREIGN KEY constraint.
    Msg 3726, Level 16, State 1, Line 3
    Could not drop object 'Typ' because it is referenced by a FOREIGN KEY constraint.
    Msg 3726, Level 16, State 1, Line 12
    Could not drop object 'Obywatel' because it is referenced by a FOREIGN KEY constraint.

    Proszę o pomoc. Wiem że chodzi o kolejność operacji usuwania tabel, ale nie mogę znaleźć odpowiedniej kolejności komend :(
  • REKLAMA
  • Pomocny post
    #2 7338920
    mf18
    Poziom 12  
    Posty: 95
    Pomógł: 5
    Ocena: 17
    Witam, o ile się nie mylę, to w narzędziu, z którego korzystasz na podstawie kodu, który wkleiłeś można wygenerować graficzny podgląd utworzonych tabel i relacji między nimi. Usuwanie powinieneś zacząć od tabel, w których są klucze obce. Rozrysuj sobie schemat bazy wraz z powiązaniami. Jeśli masz np. tabelę A i tabelę B, które są powiązane relacją A --1:N---< B, to najpierw usuwasz tabelę B, a dopiero po niej A. Jeśli możesz, to wklej schemat, szybciej można rozwiązać Twój problem na jego podstawie, niż na przykładzie kodu...
  • REKLAMA
  • #5 7339538
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    hmm ,a czy masz uprawnienia w SQL do dropowania tabelek ?
  • REKLAMA
  • #6 7339867
    Kostek7
    Poziom 27  
    Posty: 1245
    Pomógł: 92
    Ocena: 61
    Sądzę że tak ponieważ gdybym ich nie miał pewnie z ręki nie mógłbym ich usuwać, a z resztą uruchamiam program jako administrator na koncie administratora.
  • #7 7339996
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Tworzysz tabelę o nazwie "Sklada", usuwasz "Sklad" a na schemacie z tabelami w ogóle jej nie masz... To tłumaczy 1 komunikat. A resztę tak jak koledzy radzili - usuń najpierw tabele powiązane, a na końcu tabelę główną, albo spróbuj DROP TABLE nazwa_tabeli CASCADE lub coś w tym stylu.
  • REKLAMA

Podsumowanie tematu

✨ Użytkownik ma problem z usunięciem wszystkich tabel z bazy danych w M$ SQL Server Management Studio EE 2005. W odpowiedziach zasugerowano, aby najpierw usunąć tabele z kluczami obcymi, a następnie główne tabele. Użytkownik został również poinformowany o możliwości użycia polecenia DROP TABLE z opcją CASCADE, co pozwala na usunięcie tabeli wraz z powiązaniami. Po przedstawieniu schematu bazy danych, użytkownik zidentyfikował swój błąd i podziękował za pomoc.
Wygenerowane przez model językowy.
REKLAMA