· 6 years ago · Jun 18, 2019, 05:22 PM
1--https://www.sqlservercentral.com/blogs/remove-all-foreign-keys
2
3while(exists(select 1 from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='FOREIGN KEY'))
4begin
5declare @sql nvarchar(2000)
6SELECT TOP 1 @sql=('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME
7+ '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']')
8FROM information_schema.table_constraints
9WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
10exec (@sql)
11end
12
13
14
15
16-------- USUŃ TABELE --------
17
18DROP TABLE IF EXISTS Marka;
19DROP TABLE IF EXISTS Model;
20DROP TABLE IF EXISTS Samochodciezarowy;
21DROP TABLE IF EXISTS Samochodosobowy;
22DROP TABLE IF EXISTS Typsilnika;
23DROP TABLE IF EXISTS Samochod;
24DROP TABLE IF EXISTS Dodatkowewyposazenie;
25DROP TABLE IF EXISTS Klient;
26DROP TABLE IF EXISTS Sprzedaz;
27DROP TABLE IF EXISTS Dealer;
28DROP TABLE IF EXISTS Posiada;
29DROP TABLE IF EXISTS Posiadaja;
30DROP TABLE IF EXISTS Posiadanie;
31
32------------ CREATE - UTWÓRZ TABELE I POWIĄZANIA ------------
33
34
35
36
37CREATE TABLE Marka (
38nazwa VARCHAR(20) PRIMARY KEY,
39rokzalozenia integer
40);
41
42CREATE TABLE Model (
43identyfikator VARCHAR(20) PRIMARY KEY,
44nazwa VARCHAR(20),
45rokwprowadzenianarynek INTEGER,
46Marka_nazwa VARCHAR(20) REFERENCES Marka(nazwa)
47);
48
49CREATE TABLE Samochodciezarowy (
50ladownosc INT NOT NULL
51);
52
53CREATE TABLE Samochodosobowy (
54liczbapasazerow INT NOT NULL,
55pojemnoscbagaznika INT NOT NULL
56);
57
58CREATE TABLE Typsilnika (
59identyfikator VARCHAR(20) PRIMARY KEY,
60rodzajpaliwa VARCHAR(20),
61opisparametrow VARCHAR(20),
62CHECK (rodzajpaliwa = 'diesel' or rodzajpaliwa = 'benzyna' or rodzajpaliwa = 'prad' or rodzajpaliwa = 'usmiechbabelka')
63);
64
65CREATE TABLE Dealer (
66nazwa VARCHAR(20) PRIMARY KEY,
67adres VARCHAR(20) NOT NULL
68
69);
70
71CREATE TABLE Samochod (
72VIN INT PRIMARY KEY,
73przebiegdonegocjacji INT NOT NULL,
74skrzyniabiegow VARCHAR(20),
75krajpochodzenia VARCHAR(20),
76rokprodukcji DATETIME,
77Model_identyfikator VARCHAR(20) REFERENCES Model(identyfikator),
78Typsilnika_identyfikator VARCHAR(20) REFERENCES Typsilnika(identyfikator),
79Dealer_nazwa VARCHAR(20) foreign key REFERENCES Dealer(nazwa),
80check(skrzyniabiegow = 'jestdziala' or skrzyniabiegow = 'jestniedziala' or skrzyniabiegow = 'niema' or skrzyniabiegow = 'niewiadomo' )
81);
82
83CREATE TABLE Dodatkowewyposazenie (
84nazwa VARCHAR(20) PRIMARY KEY,
85);
86
87
88
89CREATE TABLE Sprzedaz (
90data_sprzedazy DATETIME not null primary key,
91cena INT NOT NULL,
92Samochod_VIN INT REFERENCES Samochod(VIN),
93Dealer_nazwa VARCHAR(20) foreign key REFERENCES Dealer(nazwa)
94);
95
96CREATE TABLE Klient (
97ID INT primary key,
98imie VARCHAR(20) NOT NULL,
99nazwisko VARCHAR(20) NOT NULL,
100numertelefonu INT NOT NULL,
101Sprzedaz_data datetime not null references Sprzedaz(data_sprzedazy),
102);
103
104
105
106
107
108CREATE TABLE Posiada (
109Typsilnika_identyfikator VARCHAR(20) REFERENCES Typsilnika(identyfikator),
110Model_identyfikator VARCHAR(20) REFERENCES Model(identyfikator),
111PRIMARY KEY (Typsilnika_identyfikator,Model_identyfikator)
112);
113
114CREATE TABLE Posiadaja (
115Dealer_nazwa VARCHAR(20) REFERENCES Dealer(nazwa),
116Model_identyfikator VARCHAR(20) REFERENCES Model(identyfikator),
117PRIMARY KEY (Dealer_nazwa,Model_identyfikator)
118);
119
120CREATE TABLE Posiadanie (
121Samochod_VIN INT REFERENCES Samochod(VIN),
122Dodatkowewyposazenie_nazwa VARCHAR(20) REFERENCES Dodatkowewyposazenie(nazwa)
123);
124
125
126
127------------ INSERT - WSTAW DANE ------------
128
129
130
131INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Skoda',1985);
132INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Toyota',1965);
133INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Dacia',1885);
134INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('BMW',1705);
135INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Opel',1855);
136INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Ford',1786);
137INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Hyundai',1596);
138INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Mini',1875);
139INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Porsche',1885);
140INSERT INTO Marka(nazwa, rokzalozenia) VALUES ('Lexux',1655);
141
142INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('DBAD','benzyna','szybki');
143INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('A123','usmiechbabelka','wolny');
144INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('B452','diesel','sredni');
145INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('C942','benzyna','wolny');
146INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('Z354','diesel','megaszybki');
147INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('M434','benzyna','megawolny');
148INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('P352','prad','szybki');
149INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('K425','benzyna','szybki');
150INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('O145','benzyna','wolny');
151INSERT INTO Typsilnika(identyfikator, rodzajpaliwa, opisparametrow) VALUES ('P535','prad','sredni');
152
153insert into Dealer(nazwa, adres) values ('OneCar', 'ul.Przykladowa')
154
155insert into Model(identyfikator, nazwa, rokwprowadzenianarynek, Marka_nazwa) values ('O23F', 'Pickup', 1968, 'Ford')
156
157insert into Samochod(VIN, przebiegdonegocjacji, skrzyniabiegow, krajpochodzenia, rokprodukcji, Model_identyfikator,
158 Typsilnika_identyfikator, Dealer_nazwa) values(12345, 20, 'jestdziala', 'Kuba', 1968, 'O23F', 'DBAD', 'OneCar')
159
160
161
162
163
164
165
166
167drop procedure if exists FastAsSanic
168
169go
170create procedure FastAsSanic @param varchar(20)
171as
172 select count(opisparametrow) as 'fast_cars'
173 from Typsilnika
174 where opisparametrow = @param
175go
176
177exec FastAsSanic @param = 'szybki';
178
179
180
181
182
183------------ SELECT ------------
184
185SELECT * FROM Marka;
186SELECT * FROM Typsilnika;