Advertisement
Guest User

Untitled

a guest
Feb 14th, 2018
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 65.26 KB | None | 0 0
  1. CREATE DATABASE [VISEnergia];
  2. GO
  3.  
  4. USE [VISEnergia];
  5.  
  6. CREATE TABLE KodyPocztowe
  7. (
  8.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT KodyPocz_PK PRIMARY KEY,
  9.     Kod VARCHAR(6) NOT NULL CONSTRAINT KodyPocz_U_Kod UNIQUE
  10. );
  11.  
  12. INSERT INTO KodyPocztowe(Kod) VALUES
  13.     ('82-100'),
  14.     ('82-300');
  15. /*                                             +-------------------------------------+                                             */
  16. /*                                             |            +Stanowiska+             |                                             */
  17. /*                                             +-------------------------------------+                                             */
  18. CREATE TABLE Stanowiska
  19. (
  20.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Stanowiska_PK PRIMARY KEY,
  21.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Stanowiska_U_Nazwa UNIQUE
  22. );
  23.  
  24. INSERT INTO Stanowiska (Nazwa) VALUES
  25.     ('Design'), -- 1
  26.     ('Logic'), -- 2
  27.     ('Database'); -- 3
  28. /*                                             +-------------------------------------+                                             */
  29. /*                                             |              +Strony+               |                                             */
  30. /*                                             +-------------------------------------+                                             */
  31. CREATE TABLE Strony
  32. (
  33.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Strony_PK PRIMARY KEY,
  34.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Strony_U_Nazwa UNIQUE
  35. );
  36.  
  37. INSERT INTO Strony (Nazwa) VALUES
  38.     -- MAIN
  39.     ('Default'), -- 1
  40.     ('Error'), -- 2
  41.     ('AccountDetails'), -- 3
  42.     -- UŻYTKOWNICY
  43.     ('AddUser'), -- 4
  44.     ('EditUser'), -- 5
  45.     ('DeleteUser'), -- 6
  46.     -- PRACOWNICY
  47.     ('AddPracownicy'), -- 7
  48.     ('EditPracownicy'), -- 8
  49.     ('DeletePracownicy'), -- 9
  50.     -- POZOSTAŁE
  51.     ('EditValues'), -- 10
  52.     ('QueryConstructor'), -- 11
  53.     ('AboutTurbina'), -- 12
  54.     ('TurbinaBeta'), -- 13
  55.     ('Turbiny'), -- 14
  56.     ('Elektrownia'), --15
  57.     ('Dodatkowy'), -- 16
  58.     ('Locations'), -- 17
  59.     ('Przylacze'), -- 18
  60.     ('Slownik'), -- 19
  61.     ('FTPSettings'); -- 20
  62. /*                                             +-------------------------------------+                                             */
  63. /*                                             |               +Ulice+               |                                             */
  64. /*                                             +-------------------------------------+                                             */
  65. CREATE TABLE Ulice
  66. (
  67.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Ulice_PK PRIMARY KEY,
  68.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Ulice_U_Nazwa UNIQUE
  69. );
  70.  
  71. INSERT INTO Ulice (Nazwa) VALUES
  72.     ('Traugutta'), -- 1
  73.     ('Wojska Polskiego'); -- 2
  74. /*                                             +-------------------------------------+                                             */
  75. /*                                             |            +Uprawnienia+            |                                             */
  76. /*                                             +-------------------------------------+                                             */
  77. CREATE TABLE Uprawnienia
  78. (
  79.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Uprawnienia_PK PRIMARY KEY,
  80.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Uprawnienia_U_Nazwa UNIQUE
  81. );
  82.  
  83. INSERT INTO Uprawnienia(Nazwa) VALUES
  84.     ('MasterAdmin'), -- 1
  85.     ('Admin'), -- 2
  86.     ('Dostawca'), -- 3
  87.     ('Operator'), -- 4
  88.     ('Moderator'); -- 5
  89. ---------------------------------------------------------------------------------------------------------------------------------
  90. /*                                             +-------------------------------------+                                             */
  91. /*                                             |              +Miasta+               |                                             */
  92. /*                                             +-------------------------------------+                                             */
  93. CREATE TABLE Miasta
  94. (
  95.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Miasta_PK PRIMARY KEY,
  96.     Nazwa VARCHAR(80) NOT NULL,
  97.     ID_Kodu INTEGER NOT NULL CONSTRAINT Miasta_FK_KodPocz REFERENCES KodyPocztowe(ID)
  98. );
  99.  
  100. INSERT INTO Miasta(Nazwa, ID_Kodu) VALUES
  101.     ('Elbląg', 2),
  102.     ('Kmiecin', 1),
  103.     ('Nowy Dwór Gdański', 1);
  104. /*                                             +-------------------------------------+                                             */
  105. /*                                             |       +UprawnieniaDoStron+          |                                             */
  106. /*                                             +-------------------------------------+                                             */
  107. CREATE TABLE UprawnieniaDoStron
  108. (
  109.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT UprawDoStron_PK PRIMARY KEY,
  110.     ID_Uprawnienia INTEGER NOT NULL CONSTRAINT UprawDoStron_FK_Upraw REFERENCES Uprawnienia(ID),
  111.     ID_Strony INTEGER NOT NULL CONSTRAINT UprawDoStron_FK_Strona REFERENCES Strony(ID),
  112.     CONSTRAINT UprawDoStron_U_UprawStrony UNIQUE(ID_Uprawnienia,ID_Strony)
  113. );
  114.  
  115. INSERT INTO UprawnieniaDoStron (ID_Uprawnienia, ID_Strony) VALUES
  116.     -- MASTERADMIN
  117.     (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (1, 11), (1, 12), (1, 13), (1, 14), (1, 15), (1, 16), (1, 17), (1, 18), (1, 19), (1, 20),
  118.     -- ADMIN
  119.     (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (2, 10), (2, 11), (2, 12), (2, 13), (2, 14), (2, 15), (2, 16), (2, 17), (2, 18), (2, 19), (2, 20),
  120.     -- DOSTAWCA
  121.     (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (3, 10), (3, 11), (3, 12), (3, 13), (3, 14), (3, 15), (3, 16), (3, 17), (3, 18), (3, 19), (3, 20),
  122.     -- OPERATOR
  123.     (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9), (4, 10), (4, 11), (4, 12), (4, 13), (4, 14), (4, 15), (4, 16), (4, 17), (4, 18), (4, 19), (4, 20),
  124.     -- MODERATOR
  125.     (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9), (5, 10), (5, 11), (5, 12), (5, 13), (5, 14), (5, 15), (5, 16), (5, 17), (5, 18), (5, 19), (5, 20);
  126. -------------------------------------------------------------------------------------------------------------------------------------
  127. /*                                             +-------------------------------------+                                             */
  128. /*                                             |               +Firmy+               |                                             */
  129. /*                                             +-------------------------------------+                                             */
  130. CREATE TABLE Firmy
  131. (
  132.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Firmy_PK PRIMARY KEY,
  133.     Nazwa VARCHAR(80) CONSTRAINT Firmy_U_Nazwa UNIQUE,
  134.     NIP CHAR(10) CONSTRAINT Firmy_U_NIP UNIQUE,
  135.     Telefon CHAR(9),
  136.     ID_Miasta INTEGER CONSTRAINT Firmy_FK_Miasto REFERENCES Miasta(ID),
  137.     ID_Ulicy INTEGER CONSTRAINT Firmy_FK_Ulica REFERENCES Ulice(ID)
  138. );
  139.  
  140. INSERT INTO Firmy (Nazwa, NIP, ID_Miasta, ID_Ulicy) VALUES
  141.     ('VIS Energia', 123654789, 1, 1), -- 1
  142.     ('Studenty PWSZ', 741258963, 1, 2); -- 2
  143. -------------------------------------------------------------------------------------------------------------------------------------
  144. /*                                             +-------------------------------------+                                             */
  145. /*                                             |            +Pracownicy+             |                                             */
  146. /*                                             +-------------------------------------+                                             */
  147. CREATE TABLE Pracownicy
  148. (
  149.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Pracownicy_PK PRIMARY KEY,
  150.     Nazwisko VARCHAR(80) NOT NULL,
  151.     Imie VARCHAR(80) NOT NULL,
  152.     ID_Firmy INTEGER NOT NULL CONSTRAINT Pracownicy_FK_Firma REFERENCES Firmy(ID),
  153.     ID_Stanowiska INTEGER CONSTRAINT Pracownicy_FK_Stanowisko REFERENCES Stanowiska(ID),
  154.     ID_Miasta INTEGER CONSTRAINT Pracownicy_FK_Miasto REFERENCES Miasta(ID),
  155.     ID_Ulicy INTEGER CONSTRAINT Pracownicy_FK_Ulica REFERENCES Ulice(ID),
  156.     NrDomu VARCHAR(80),
  157.     NrMieszkania VARCHAR(80),
  158.     Telefon VARCHAR(80),
  159.     Email VARCHAR(80) NOT NULL CONSTRAINT Pracownicy_U_Email UNIQUE,
  160.     CONSTRAINT Pracownicy_U_Osoba UNIQUE(Nazwisko, Imie)
  161. );
  162.  
  163. INSERT INTO Pracownicy (Nazwisko, Imie, ID_Firmy, ID_Stanowiska, ID_Miasta, Email) VALUES
  164.     ('Wisniewski', 'Jakub', 2, 1, 1, 'wj@wp.pl'), -- 1
  165.     ('Kowalska', 'Antonina', 2, 2, 3, 'ka@wp.pl'), -- 2
  166.     ('Kwiatkowski', 'Jan', 2, 3, 2, 'kj@wp.pl'), -- 3
  167.     ('Nowak', 'Kunekunda', 2, 3, 2, 'nk@wp.pl'), -- 4
  168.     ('Wójcik', 'Katarzyna', 1, 3, 2, 'wk@wp.pl'), -- 5
  169.     ('Kowalczyk', 'Magdalena', 1, 3, 2, 'km@wp.pl'), -- 6
  170.     ('Kamiński', 'Piotr', 1, 3, 2, 'kp@wp.pl'), -- 7
  171.     ('Zieliński', 'Michał', 1, 3, 2, 'zm@wp.pl'); -- 8
  172. -------------------------------------------------------------------------------------------------------------------------------------
  173. /*                                             +-------------------------------------+                                             */
  174. /*                                             |            +Uzytkownicy+            |                                             */
  175. /*                                             +-------------------------------------+                                             */
  176. CREATE TABLE Uzytkownicy
  177. (
  178.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Uzytkownicy_PK PRIMARY KEY,
  179.     Login VARCHAR(80) NOT NULL CONSTRAINT Uzytkownicy_U_Login UNIQUE,
  180.     Haslo VARCHAR(128) NOT NULL,
  181.     ID_Pracownika INTEGER CONSTRAINT Uzytkownicy_FK_Pracownik REFERENCES Pracownicy(ID) CONSTRAINT Uzytkownicy_U_Pracownik UNIQUE,
  182.     ID_Uprawnien INTEGER NOT NULL CONSTRAINT Uzytkownicy_FK_Uprawnienie REFERENCES Uprawnienia(ID),
  183.     ZmianaHasla BIT NOT NULL,
  184.     Aktywny BIT NOT NULL,
  185.     Pytanie TEXT,
  186.     Odpowiedz TEXT,
  187.     OstatnieLogowanie DATETIME,
  188.     CHECK ((Login = 'MasterAdmin' AND ID_Pracownika IS NULL) OR (Login != 'MasterAdmin' AND ID_Pracownika IS NOT NULL))
  189. );
  190.  
  191. INSERT INTO Uzytkownicy (Login, Haslo, ID_Pracownika, ID_Uprawnien, ZmianaHasla, Aktywny) VALUES
  192.     ('MasterAdmin', 'dIDoUPs+AXLoNqBiCJoZEP7pOTYjqwX8R7fGa6bn/GJjoxWhdWZqwOIrhK/DyUL6SaXzTxdrnDakZ3zV8jRX3Q==', null, 1, 0, 1), -- 1
  193.     ('Admin', 'hu7hY9WVoxl4ZQ7QPvUEVIUSIQqYJAxJMIrddn2K1FR6USK3PvftDFb4b4jNuTKzEpTzbO1myvz/Dt8CdB6i9w==', 1, 2, 0, 1), -- 2
  194.     ('Dostawca', 'A4yr7MrlFFWAIHU03qyQ+CEjg0WpmDmaANSa0c1bXq/+jk8pmVGBYjmS//sQeYKOt9Ivl4K/Unh6jkuFhR+9tw==', 2, 3, 0, 1), -- 3
  195.     ('Operator', 'FrdJW2Y7+MyJgG7KDX01BXUUFMmDeA0ZAD5bykLXiD8vLEY0D34aKMo7iAVQr7t16i5Ed7rd/2UAJYEZ0GRXcg==', 3, 4, 0, 1), -- 4
  196.     ('Moderator', 'aEHTEbe0wW/1uwXrHEmvhYRKRtcdofjGCI9maovkmnyWVf1R5FRvfGHUQv16nClxGoUaUaD1s7AjVBBX5ohciw==', 4, 5, 0, 1); -- 5
  197. -------------------------------------------------------------------------------------------------------------------------------------
  198. /*                                             +-------------------------------------+                                             */
  199. /*                                             |               +Logi+                |                                             */
  200. /*                                             +-------------------------------------+                                             */
  201. CREATE TABLE Logi
  202. (
  203.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Logi_PK PRIMARY KEY,
  204.     ID_Uzytkownika INTEGER CONSTRAINT Logi_FK_Uzytkownik REFERENCES Uzytkownicy(ID),
  205.     Termin DATETIME NOT NULL,
  206.     Msg TEXT
  207. );
  208. /*                                             +-------------------------------------+                                             */
  209. /*                                             |             +Zapytania+             |                                             */
  210. /*                                             +-------------------------------------+                                             */
  211. CREATE TABLE Zapytania
  212. (
  213.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Zapytania_PK PRIMARY KEY,
  214.     ID_Uzytkownika INTEGER CONSTRAINT Zapytania_FK_Uzytkownik REFERENCES Uzytkownicy(ID),
  215.     Nazwa VARCHAR(80) NOT NULL,
  216.     Tresc NVARCHAR(1024) NOT NULL,
  217.     IloscParametrow INTEGER NOT NULL,
  218.     CONSTRAINT Zapytania_U_NazwaUzytkownika UNIQUE(ID_Uzytkownika, Nazwa)
  219. );
  220.  
  221. INSERT INTO Zapytania (ID_Uzytkownika, Nazwa, Tresc, IloscParametrow) VALUES
  222.     (1, 'Dostęp do stron', 'SELECT * FROM widok_dostep_do_stron;', 0),
  223.     (1, 'Historia pomiarów', 'SELECT * FROM widok_historia_pomiarow;', 0),
  224.     (1, 'Uprawnienia', 'SELECT * FROM widok_uprawnienia;', 0),
  225.     (1, 'Wykaz pracowników bez kont', 'SELECT * FROM widok_wykaz_pracownikow_bez_konta;', 0),
  226.     (1, 'Wykaz użytkowników', 'SELECT * FROM widok_wykaz_uzytkownikow;', 0),
  227.     (1, 'Wykaz zapytań', 'SELECT * FROM widok_wykaz_zapytan;', 0),
  228.     (2, 'Użytkownicy', 'SELECT * FROM uzytkownicy;', 0),
  229.     (3, 'Zdjecia', 'SELECT * FROM zdjecia;', 0),
  230.     (null, 'Logi', 'SELECT * FROM logi;', 0);
  231. /*                                         #=============================================#                                         */
  232. /*                                         |                   +INNE+                    |                                         */
  233. /*                                         #=============================================#                                         */
  234. /*                                             +-------------------------------------+                                             */
  235. /*                                             |               +Typy+                |                                             */
  236. /*                                             +-------------------------------------+                                             */
  237. CREATE TABLE Typy
  238. (
  239.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Typy_PK PRIMARY KEY,
  240.     Nazwa VARCHAR(80) NOT NULL,
  241.     Skrot VARCHAR(4) NOT NULL CONSTRAINT Typy_U_Skrot UNIQUE
  242. );
  243.  
  244. INSERT INTO Typy (Nazwa, Skrot) VALUES
  245.     ('N/A', 'N/A'),
  246.     ('BioGazowa nierolnicza', 'BG'),
  247.     ('BioGazowa rolnicza', 'BGR'),
  248.     ('BioMasowa', 'BM'),
  249.     ('Fotowoltaiczna', 'PV'),
  250.     ('Geotermalna', 'GE'),
  251.     ('Wiatrowa', 'WI'),
  252.     ('Wodna', 'WO');
  253. -------------------------------------------------------------------------------------------------------------------------------------
  254. /*                                             +-------------------------------------+                                             */
  255. /*                                             |            +WykresCache+            |                                             */
  256. /*                                             +-------------------------------------+                                             */
  257. CREATE TABLE WykresCache
  258. (
  259.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT WykresCache_PK PRIMARY KEY,
  260.     ID_Typu INTEGER NOT NULL CONSTRAINT WykresCache_FK_Typ REFERENCES Typy(ID),
  261.     Termin DATETIME NOT NULL,
  262.     h01 DECIMAL(25,2), h02 DECIMAL(25,2), h03 DECIMAL(25,2), h04 DECIMAL(25,2), h05 DECIMAL(25,2), h06 DECIMAL(25,2), h07 DECIMAL(25,2), h08 DECIMAL(25,2), h09 DECIMAL(25,2), h10 DECIMAL(25,2), h11 DECIMAL(25,2), h12 DECIMAL(25,2),
  263.     h13 DECIMAL(25,2), h14 DECIMAL(25,2), h15 DECIMAL(25,2), h16 DECIMAL(25,2), h17 DECIMAL(25,2), h18 DECIMAL(25,2), h19 DECIMAL(25,2), h20 DECIMAL(25,2), h21 DECIMAL(25,2), h22 DECIMAL(25,2), h23 DECIMAL(25,2), h24 DECIMAL(25,2),
  264.     CONSTRAINT WykresCache_U_TypyTerminu UNIQUE(ID_Typu, Termin)
  265. );
  266. -------------------------------------------------------------------------------------------------------------------------------------
  267. /*                                         #=============================================#                                         */
  268. /*                                         |                +ELEKTROWNIE+                |                                         */
  269. /*                                         #=============================================#                                         */
  270. /*                                             +-------------------------------------+                                             */
  271. /*                                             |            +Elektrownie+            |                                             */
  272. /*                                             +-------------------------------------+                                             */
  273. CREATE TABLE Elektrownie
  274. (
  275.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Elektrownie_PK PRIMARY KEY,
  276.     ID_Firmy INTEGER CONSTRAINT Elektrownie_FK_Firma REFERENCES Firmy(ID),
  277.     Nazwa VARCHAR(80),
  278.     SzerGeogr DECIMAL(12,8),
  279.     DlugGeogr DECIMAL(12,8)
  280. );
  281.  
  282. INSERT INTO Elektrownie (Nazwa, SzerGeogr, DlugGeogr) VALUES
  283.     ('Elektrownia1', 54.166188, 19.406639), -- 1
  284.     ('Elektrownia2', 52.240645, 21.014923), -- 2
  285.     ('Elektrownia3', 53.648110, 21.548812); -- 3
  286. /*                                             +-------------------------------------+                                             */
  287. /*                                             |               +Role+                |                                             */
  288. /*                                             +-------------------------------------+                                             */
  289. CREATE TABLE Role
  290. (
  291.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Role_PK PRIMARY KEY,
  292.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Role_U_Nazwa UNIQUE
  293. );
  294.  
  295. INSERT INTO Role (Nazwa) VALUES
  296.     ('Admin'), -- 1
  297.     ('Dostawca'), -- 2
  298.     ('MasterOperator'), -- 3
  299.     ('Operator'); -- 4
  300. /*                                             +-------------------------------------+                                             */
  301. /*                                             |             +Oddzialy+              |                                             */
  302. /*                                             +-------------------------------------+                                             */
  303. CREATE TABLE Oddzialy
  304. (
  305.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Oddzialy_PK PRIMARY KEY,
  306.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Oddzialy_U_Nazwa UNIQUE
  307. );
  308.  
  309. INSERT INTO Oddzialy (Nazwa) VALUES
  310.     ('Gdańsk'), -- 1
  311.     ('Kalisz'), -- 2
  312.     ('Koszalin'), -- 3
  313.     ('Olsztyn'), -- 4
  314.     ('Płock'), -- 5
  315.     ('Słupsk'), -- 6
  316.     ('Toruń'); -- 7
  317. /*                                             +-------------------------------------+                                             */
  318. /*                                             |            +Lokalizacje+            |                                             */
  319. /*                                             +-------------------------------------+                                             */
  320. CREATE TABLE Lokalizacje
  321. (
  322.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Lokalizacje_PK PRIMARY KEY,
  323.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Lokalizacje_U_Nazwa UNIQUE
  324. );
  325. -------------------------------------------------------------------------------------------------------------------------------------
  326. /*                                             +-------------------------------------+                                             */
  327. /*                                             |          +PodElektrownie+           |                                             */
  328. /*                                             +-------------------------------------+                                             */
  329. CREATE TABLE PodElektrownie
  330. (
  331.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT PodElektrownie_PK PRIMARY KEY,
  332.     ID_Elektrowni INTEGER NOT NULL CONSTRAINT PodElektrownie_FK_Elektrownia REFERENCES Elektrownie(ID),
  333.     ID_Oddzialu INTEGER CONSTRAINT PodElektrownie_FK_Oddzial REFERENCES Oddzialy(ID),
  334.     ID_Lokalizacji INTEGER CONSTRAINT PodElektrownie_FK_Lokalizacja REFERENCES Lokalizacje(ID),
  335.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT PodElektrownie_U_Nazwa UNIQUE,
  336.     Moc DECIMAL(25,2),
  337. );
  338.  
  339. INSERT INTO PodElektrownie (ID_Elektrowni, Nazwa) VALUES
  340.     (1, 'PodEle1'), -- 1
  341.     (2, 'PodEle2'), -- 2
  342.     (3, 'PodEle3'); -- 3
  343. /*                                             +-------------------------------------+                                             */
  344. /*                                             |           +DanePogodowe+            |                                             */
  345. /*                                             +-------------------------------------+                                             */
  346. CREATE TABLE DanePogodowe
  347. (
  348.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT DanePogodowe_PK PRIMARY KEY,
  349.     ID_Elektrowni INTEGER NOT NULL CONSTRAINT DanePogodowe_FK_Elektrownia REFERENCES Elektrownie(ID),
  350.     Termin DATETIME NOT NULL,
  351.     PredkWiatru DECIMAL NOT NULL,
  352.     KierWiatru DECIMAL NOT NULL,
  353.     Cisnienie DECIMAL NOT NULL
  354. );
  355. /*                                             +-------------------------------------+                                             */
  356. /*                                             |           +RoleUprawnien+           |                                             */
  357. /*                                             +-------------------------------------+                                             */
  358. CREATE TABLE RoleUprawnien
  359. (
  360.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT RoleUprawnien_PK PRIMARY KEY,
  361.     ID_Uprawnienia INTEGER NOT NULL CONSTRAINT RoleUprawnien_FK_Uprawnienie REFERENCES Uprawnienia(ID),
  362.     ID_Roli INTEGER NOT NULL CONSTRAINT RoleUprawnien_FK_Rola REFERENCES Role(ID),
  363.     CONSTRAINT RoleUprawnien_U_UprawRoli UNIQUE(ID_Uprawnienia,ID_Roli)
  364. );
  365.  
  366. INSERT INTO RoleUprawnien (ID_Uprawnienia, ID_Roli) VALUES
  367.     (1, 1), (1, 2), (1, 3), (1, 4), -- Admin
  368.     (2, 2), (2, 3), (2, 4), -- Dostawca
  369.     (3, 3), (3, 4); -- Operator
  370. -------------------------------------------------------------------------------------------------------------------------------------
  371. /*                                             +-------------------------------------+                                             */
  372. /*                                             |     +UzytkownicyElektrowni+         |                                             */
  373. /*                                             +-------------------------------------+                                             */
  374. CREATE TABLE UzytkownicyElektrowni
  375. (
  376.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT UzytkownicyElektrowni_PK PRIMARY KEY,
  377.     ID_Elektrowni INTEGER NOT NULL CONSTRAINT UzytkownicyElektrowni_FK_Elektrownia REFERENCES Elektrownie(ID),
  378.     ID_Uzytkownika INTEGER NOT NULL CONSTRAINT UzytkownicyElektrowni_FK_Uzytkownik REFERENCES Uzytkownicy(ID),
  379.     ID_Roli INTEGER NOT NULL CONSTRAINT UzytkownicyElektrowni_FK_Uzytkownicy REFERENCES Role(ID),
  380.     ID_Nadajacego INTEGER CONSTRAINT UzytkownicyElektrowni_FK_Nadajacy REFERENCES Uzytkownicy(ID),
  381.     CONSTRAINT UzytkownicyElektrowni_U_ElektrowniaUzytkownika UNIQUE(ID_Elektrowni,ID_Uzytkownika)
  382. );
  383.  
  384. INSERT INTO UzytkownicyElektrowni (ID_Roli, ID_Elektrowni, ID_Uzytkownika) VALUES
  385.     (1, 1, 1), -- ADMIN
  386.     (1, 2, 1), -- ADMIN
  387.     (1, 3, 1), -- ADMIN
  388.     (3, 1, 2),
  389.     (3, 2, 2),
  390.     (3, 1, 4),
  391.     (3, 2, 4),
  392.     (3, 3, 4);
  393. /*                                         #=============================================#                                         */
  394. /*                                         |                 +PRZYŁĄCZA+                 |                                         */
  395. /*                                         #=============================================#                                         */
  396. /*                                             +-------------------------------------+                                             */
  397. /*                                             |             +Napiecia+              |                                             */
  398. /*                                             +-------------------------------------+                                             */
  399. CREATE TABLE Napiecia
  400. (
  401.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Napiecia_PK PRIMARY KEY,
  402.     Nazwa VARCHAR(3) NOT NULL CONSTRAINT Napiecia_U_Nazwa UNIQUE
  403. );
  404.  
  405. INSERT INTO Napiecia (Nazwa) VALUES
  406.     ('nn'), -- 1
  407.     ('SN'), -- 2
  408.     ('WN'); -- 3
  409. /*                                             +-------------------------------------+                                             */
  410. /*                                             |              +Miejsca+              |                                             */
  411. /*                                             +-------------------------------------+                                             */
  412. CREATE TABLE Miejsca
  413. (
  414.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Miejsca_PK PRIMARY KEY,
  415.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Miejsca_U_Nazwa UNIQUE
  416. );
  417. /*                                             +-------------------------------------+                                             */
  418. /*                                             |            +Wojewodztwa+            |                                             */
  419. /*                                             +-------------------------------------+                                             */
  420. CREATE TABLE Wojewodztwa
  421. (
  422.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Wojewodztwa_PK PRIMARY KEY,
  423.     Nazwa VARCHAR(80) NOT NULL CONSTRAINT Wojewodztwa_U_Nazwa UNIQUE
  424. );
  425.  
  426. INSERT INTO Wojewodztwa (Nazwa) VALUES
  427.     ('Dolnośląskie'), -- 1
  428.     ('Kujawsko-pomorskie'), -- 2
  429.     ('Lubelskie'), -- 3
  430.     ('Lubuskie'), -- 4
  431.     ('Łódzkie'), -- 5
  432.     ('Małopolskie'), -- 6
  433.     ('Mazowieckie'), -- 7
  434.     ('Opolskie'), -- 8
  435.     ('Podkarpackie'), -- 9
  436.     ('Podlaskie'), -- 10
  437.     ('Pomorskie'), -- 11
  438.     ('Sląskie'), -- 12
  439.     ('Świętokrzyskie'), -- 13
  440.     ('Warmińsko-mazurskie'), -- 14
  441.     ('Wielkopolskie'), -- 15
  442.     ('Zachodniopomorskie'); -- 16
  443. -------------------------------------------------------------------------------------------------------------------------------------
  444. /*                                             +-------------------------------------+                                             */
  445. /*                                             |           +EnergiaBierna+           |                                             */
  446. /*                                             +-------------------------------------+                                             */
  447. CREATE TABLE EnergiaBierna
  448. (
  449.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  450.     h01 DECIMAL(25,2), h02 DECIMAL(25,2), h03 DECIMAL(25,2), h04 DECIMAL(25,2), h05 DECIMAL(25,2), h06 DECIMAL(25,2), h07 DECIMAL(25,2), h08 DECIMAL(25,2), h09 DECIMAL(25,2), h10 DECIMAL(25,2), h11 DECIMAL(25,2), h12 DECIMAL(25,2),
  451.     h13 DECIMAL(25,2), h14 DECIMAL(25,2), h15 DECIMAL(25,2), h16 DECIMAL(25,2), h17 DECIMAL(25,2), h18 DECIMAL(25,2), h19 DECIMAL(25,2), h20 DECIMAL(25,2), h21 DECIMAL(25,2), h22 DECIMAL(25,2), h23 DECIMAL(25,2), h24 DECIMAL(25,2),
  452.     Suma DECIMAL(25,2)
  453. );
  454. /*                                             +-------------------------------------+                                             */
  455. /*                                             |           +EnergiaCzynna+           |                                             */
  456. /*                                             +-------------------------------------+                                             */
  457. CREATE TABLE EnergiaCzynna
  458. (
  459.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  460.     h01 DECIMAL(25,2), h02 DECIMAL(25,2), h03 DECIMAL(25,2), h04 DECIMAL(25,2), h05 DECIMAL(25,2), h06 DECIMAL(25,2), h07 DECIMAL(25,2), h08 DECIMAL(25,2), h09 DECIMAL(25,2), h10 DECIMAL(25,2), h11 DECIMAL(25,2), h12 DECIMAL(25,2),
  461.     h13 DECIMAL(25,2), h14 DECIMAL(25,2), h15 DECIMAL(25,2), h16 DECIMAL(25,2), h17 DECIMAL(25,2), h18 DECIMAL(25,2), h19 DECIMAL(25,2), h20 DECIMAL(25,2), h21 DECIMAL(25,2), h22 DECIMAL(25,2), h23 DECIMAL(25,2), h24 DECIMAL(25,2),
  462.     Suma DECIMAL(25,2)
  463. );
  464.  
  465. INSERT INTO EnergiaCzynna (h01, h02, h03, h04, h05, h06, h07, h08, h09, h10, h11, h12, h13, h14, h15, h16, h17, h18, h19, h20, h21, h22, h23, h24, suma) VALUES
  466.     (24147, 7466, 33246, 12401, 42869, 429, 39517, 27715, 17863, 32005, 21214, 23823, 8367, 20116, 16611, 21004, 42125, 13718, 36529, 12711, 19578, 13539, 23993, 14521, 525507),
  467.     (39291, 6032, 18844, 279, 9739, 28370, 29610, 36319, 26982, 25946, 31363, 3392, 4958, 21313, 9027, 38860, 11107, 10994, 23418, 34826, 27950, 10284, 36900, 23093, 508897),
  468.     (22173, 25127, 43092, 15479, 28554, 25064, 41131, 3940, 42266, 22650, 1861, 25901, 31501, 15423, 8508, 34316, 43245, 1145, 20617, 5727, 36907, 43722, 19942, 35316, 593607),
  469.     (34144, 23042, 19912, 41417, 4363, 33228, 36714, 34227, 35364, 11731, 12080, 37297, 19236, 25347, 31359, 35026, 32331, 15090, 1418, 28492, 42388, 19736, 9293, 26158, 609393),
  470.     (6309, 12352, 35970, 37873, 31834, 7587, 35602, 32840, 10732, 4624, 1986, 12098, 21943, 15542, 38757, 38050, 30901, 28195, 18833, 26112, 6078, 39075, 15220, 30948, 539461),
  471.     (44641, 33780, 44424, 22043, 25871, 15047, 28028, 31284, 10254, 22911, 14786, 34990, 16039, 17256, 32180, 24598, 31225, 20646, 9917, 37819, 1393, 14645, 39129, 14244, 587150),
  472.     (8339, 8647, 25537, 13369, 43521, 23609, 13725, 42263, 20933, 13564, 24137, 44327, 26622, 11510, 41569, 25182, 42942, 18697, 24363, 30263, 17054, 36710, 17820, 688, 575391),
  473.     (7415, 30134, 42830, 38737, 8550, 2757, 21384, 16251, 1658, 10552, 18294, 8679, 30806, 33133, 5019, 34767, 39693, 22511, 28966, 22565, 40604, 8455, 438, 20846, 495044),
  474.     (6261, 14285, 38235, 19369, 43455, 25948, 26370, 7859, 3097, 44516, 17831, 18366, 8136, 28782, 34812, 24002, 18317, 23461, 17735, 28450, 42857, 226, 40789, 27999, 561158),
  475.     (43445, 11996, 20986, 1140, 16022, 5597, 18993, 22215, 30319, 8292, 34571, 32791, 9009, 33389, 11690, 27886, 39535, 22418, 18162, 27261, 20503, 18330, 36024, 30212, 540786),
  476.     (37635, 29991, 15428, 34981, 38848, 22352, 34730, 32365, 34933, 8236, 44787, 6761, 10823, 26444, 30203, 10684, 5961, 14301, 15540, 6409, 33705, 27117, 40951, 27063, 590248),
  477.     (2765, 20755, 16975, 402, 4267, 3384, 19162, 20069, 5649, 37356, 17277, 20159, 20306, 26818, 14635, 34181, 21841, 32602, 18340, 7224, 27398, 31018, 44702, 8024, 455309),
  478.     (8339, 8647, 25537, 19369, 43521, 23609, 13725, 1658, 20933, 13564, 24137, 44327, 26622, 28782, 41569, 25182, 39535, 18697, 24363, 30263, 17054, 36710, 17820, 688, 554651);
  479. /*                                             +-------------------------------------+                                             */
  480. /*                                             |            +Przylacza+              |                                             */
  481. /*                                             +-------------------------------------+                                             */
  482. CREATE TABLE Przylacza
  483. (
  484.     ID INTEGER NOT NULL IDENTITY(1,1) CONSTRAINT Przylacza_PK PRIMARY KEY,
  485.     ID_Typu INTEGER CONSTRAINT Przylacza_FK_Typ REFERENCES Typy(ID),
  486.     ID_PodElektrowni INTEGER NOT NULL CONSTRAINT Przylacza_FK_PodElektrownia REFERENCES PodElektrownie(ID),
  487.     ID_Napiecia INTEGER CONSTRAINT Przylacza_FK_Napiecie REFERENCES Napiecia(ID),
  488.     ID_Wojewodztwa INTEGER CONSTRAINT Przylacza_FK_Wojewodztwo REFERENCES Wojewodztwa(ID),
  489.     ID_Miejsca INTEGER CONSTRAINT Przylacza_FK_Miejsce REFERENCES Miejsca(ID),
  490.     Nazwa VARCHAR(80) NOT NULL,
  491.     NrPPE VARCHAR(80) NOT NULL,
  492.     Pozycja VARCHAR(80),
  493.     NrSID VARCHAR(80),
  494.     Moc DECIMAL(25,2),
  495.     EnergiaWytworzona DECIMAL(25,2),
  496.     EnergiaWWprowadzona DECIMAL(25,2),
  497.     Sprawnosc DECIMAL(25,2),
  498.     Przylaczeniowa DECIMAL(25,2),
  499.     UwagiMiejsca TEXT,
  500.     Uwagi TEXT
  501. );
  502.  
  503. INSERT INTO Przylacza (ID_Typu, ID_PodElektrowni, Nazwa, NrPPE) VALUES
  504.     (3, 1, 'GA721', 'PPE0123456701234567'), -- 1
  505.     (4, 2, 'Przylacze2', 'PPE7654321076543210'), -- 2
  506.     (3, 1, 'Przylacze3', 'PPE7654321076543210'), -- 3
  507.     (3, 3, 'Przylacze4', 'PPE1232123212321232'), -- 4
  508.     (3, 3, 'Przylacze5', 'PPE1029384756102938'); -- 5
  509. -------------------------------------------------------------------------------------------------------------------------------------
  510. /*                                             +-------------------------------------+                                             */
  511. /*                                             |       +HistoriaPrzylaczy+           |                                             */
  512. /*                                             +-------------------------------------+                                             */
  513. CREATE TABLE HistoriaPrzylaczy
  514. (
  515.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  516.     Termin DATETIME NOT NULL,
  517.     ID_EnergiBiernej INTEGER REFERENCES EnergiaBierna(ID),
  518.     ID_EnergiCzynnej INTEGER NOT NULL REFERENCES EnergiaCzynna(ID),
  519.     ID_Przylacza INTEGER NOT NULL REFERENCES Przylacza(ID),
  520.     Uwagi TEXT,
  521.     UNIQUE(Termin,ID_EnergiCzynnej,ID_Przylacza)
  522. );
  523.  
  524. INSERT INTO HistoriaPrzylaczy (ID_EnergiCzynnej, Termin, ID_Przylacza) VALUES
  525.     (1, '2017-12-05', 1),
  526.     (2, '2017-12-05', 2),
  527.     (3, '2017-12-05', 3),
  528.     (4, '2017-12-04', 1),
  529.     (5, '2017-12-04', 2),
  530.     (6, '2017-12-03', 1),
  531.     (7, '2017-12-03', 2),
  532.     (8, '2017-12-03', 4),
  533.     (9, '2017-12-03', 5),
  534.     (10, '2017-12-05', 4),
  535.     (11, '2017-12-05', 5),
  536.     (12, '2017-12-04', 4),
  537.     (13, '2017-12-04', 5);
  538. /*                                         #=============================================#                                         */
  539. /*                                         |                +GENERATORY+                 |                                         */
  540. /*                                         #=============================================#                                         */
  541. /*                                             +-------------------------------------+                                             */
  542. /*                                             |       +DaneTurbinWiatrowych+        |                                             */
  543. /*                                             +-------------------------------------+                                             */
  544. CREATE TABLE DaneTurbinWiatrowych
  545. (
  546.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  547.     GestoscPowietrza DECIMAL(25,2),
  548.     PredkoscUruchomienia DECIMAL(25,2),
  549.     PredkoscZatrzymania DECIMAL(25,2),
  550.     PredkoscNominalna DECIMAL(25,2),
  551.     SrednicaLopat DECIMAL(25,2),
  552.     WysokoscPiasty DECIMAL(25,2),
  553.     PowierzchniaWirnika DECIMAL(25,2)
  554. );
  555.  
  556. INSERT INTO DaneTurbinWiatrowych(GestoscPowietrza, PredkoscUruchomienia, PredkoscZatrzymania, PredkoscNominalna, SrednicaLopat, WysokoscPiasty, PowierzchniaWirnika) VALUES
  557.     (1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6);
  558. /*                                             +-------------------------------------+                                             */
  559. /*                                             |         +DaneTurbinWodnych+         |                                             */
  560. /*                                             +-------------------------------------+                                             */
  561. CREATE TABLE DaneTurbinWodnych
  562. (
  563.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  564.     IloscWody DECIMAL(25,2)
  565. );
  566.  
  567. INSERT INTO DaneTurbinWodnych(IloscWody) VALUES
  568.     (1.0);
  569. /*                                             +-------------------------------------+                                             */
  570. /*                                             |     +DaneOgniwFotowoltaicznych+     |                                             */
  571. /*                                             +-------------------------------------+                                             */
  572. CREATE TABLE DaneOgniwFotowoltaicznych
  573. (
  574.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  575.     Naslonecznienie DECIMAL(25,2)
  576. );
  577.  
  578. INSERT INTO DaneOgniwFotowoltaicznych(Naslonecznienie) VALUES
  579.     (1.0);
  580. /*                                             +-------------------------------------+                                             */
  581. /*                                             |            +Producenci+             |                                             */
  582. /*                                             +-------------------------------------+                                             */
  583. CREATE TABLE Producenci
  584. (
  585.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  586.     Nazwa VARCHAR(80) NOT NULL UNIQUE
  587. );
  588.  
  589. INSERT INTO Producenci (Nazwa) VALUES
  590.     ('OlaEnterprises'), -- 1
  591.     ('KarolCorporation'), -- 2
  592.     ('TomekIndustries'); -- 3
  593. -------------------------------------------------------------------------------------------------------------------------------------
  594. /*                                             +-------------------------------------+                                             */
  595. /*                                             |    +KrzyweMocyTurbinWiatrowych+     |                                             */
  596. /*                                             +-------------------------------------+                                             */
  597. CREATE TABLE KrzyweMocyTurbinWiatrowych
  598. (
  599.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  600.     ID_Turbiny INTEGER NOT NULL REFERENCES DaneTurbinWiatrowych(ID),
  601.     Wiatr DECIMAL(25,3) NOT NULL,
  602.     Moc DECIMAL(25,3) NOT NULL,
  603.     WsplCp DECIMAL(25,3),
  604.     WsplCt DECIMAL(25,3),
  605.     UNIQUE(ID_Turbiny,Wiatr)
  606. );
  607.  
  608. INSERT INTO dbo.KrzyweMocyTurbinWiatrowych(ID_Turbiny, Wiatr, Moc)
  609. VALUES
  610.     (1,0,0.000),(1,1,0.000),(1,2,0.000),(1,3,0.000),(1,4,0.067),
  611.     (1,5,0.154),(1,6,0.282),(1,7,0.460),(1,8,0.696),(1,9,0.996),
  612.     (1,10,1.341),(1,11,1.661),(1,12,1.866),(1,13,1.958),(1,14,1.988),
  613.     (1,15,1.997),(1,16,1.999),(1,17,2.000),(1,18,2.000),(1,19,2.000),
  614.     (1,20,2.000),(1,21,2.000),(1,22,2.000),(1,23,2.000),(1,24,2.000),
  615.     (1,25,2.000),(1,26,0.000),(1,27,0.000),(1,28,0.000),(1,29,0.000);
  616. /*                                             +-------------------------------------+                                             */
  617. /*                                             |      +KrzyweMocyTurbinWodnych+      |                                             */
  618. /*                                             +-------------------------------------+                                             */
  619. CREATE TABLE KrzyweMocyTurbinWodnych
  620. (
  621.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  622.     ID_Turbiny INTEGER NOT NULL REFERENCES DaneTurbinWodnych(ID),
  623.     IloscWody DECIMAL(25,2) NOT NULL,
  624.     Moc DECIMAL(25,2) NOT NULL,
  625.     UNIQUE(ID_Turbiny,IloscWody)
  626. );
  627. /*                                             +-------------------------------------+                                             */
  628. /*                                             |  +KrzyweMocyOgniwFotowoltaicznych+  |                                             */
  629. /*                                             +-------------------------------------+                                             */
  630. CREATE TABLE KrzyweMocyOgniwFotowoltaicznych
  631. (
  632.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  633.     ID_Ogniwa INTEGER NOT NULL REFERENCES DaneOgniwFotowoltaicznych(ID),
  634.     Naslonecznienie DECIMAL(25,2) NOT NULL,
  635.     Moc DECIMAL(25,2) NOT NULL,
  636.     UNIQUE(ID_Ogniwa,Naslonecznienie)
  637. );
  638. /*                                             +-------------------------------------+                                             */
  639. /*                                             |        +SlownikGeneratorow+         |                                             */
  640. /*                                             +-------------------------------------+                                             */
  641. CREATE TABLE SlownikGeneratorow
  642. (
  643.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  644.     ID_Producenta INTEGER NOT NULL REFERENCES Producenci(ID),
  645.     Model VARCHAR(80) NOT NULL,
  646.     MocNominalna INTEGER,
  647.     ID_DanychWiatrowych INTEGER REFERENCES DaneTurbinWiatrowych(ID),
  648.     ID_DanychWodnych INTEGER REFERENCES DaneTurbinWodnych(ID),
  649.     ID_DanychSlonecznych INTEGER REFERENCES DaneOgniwFotowoltaicznych(ID),
  650.     UNIQUE(ID_Producenta, Model),
  651.     CHECK
  652.     (
  653.         (
  654.             CASE WHEN ID_DanychWiatrowych IS NOT NULL THEN 1 ELSE 0 END +
  655.             CASE WHEN ID_DanychWodnych IS NOT NULL THEN 1 ELSE 0 END +
  656.             CASE WHEN ID_DanychSlonecznych IS NOT NULL THEN 1 ELSE 0 END
  657.         ) = 1
  658.     )
  659. );
  660.  
  661. INSERT INTO SlownikGeneratorow (ID_Producenta, Model, ID_DanychWiatrowych, ID_DanychWodnych, ID_DanychSlonecznych) VALUES
  662.     (1, 'Dol', 1, null, null), -- 1
  663.     (2, 'Eld', 1, null, null), -- 2
  664.     (3, 'Hel', null, 1, null), -- 3
  665.     (1, 'Ist', null, 1, null), -- 4
  666.     (2, 'Tir', null, 1, null), -- 5
  667.     (3, 'Vex', null, 1, null); -- 6
  668. -------------------------------------------------------------------------------------------------------------------------------------
  669. /*                                             +-------------------------------------+                                             */
  670. /*                                             |            +Generatory+             |                                             */
  671. /*                                             +-------------------------------------+                                             */
  672. CREATE TABLE Generatory
  673. (
  674.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  675.     ID_Typu INTEGER NOT NULL REFERENCES Typy(ID),
  676.     ID_Przylacza INTEGER NOT NULL REFERENCES Przylacza(ID),
  677.     ID_Generatora INTEGER NOT NULL REFERENCES SlownikGeneratorow(ID),
  678.     Numer INTEGER NOT NULL,
  679.     SzerGeogr DECIMAL(12,8),
  680.     DlugGeogr DECIMAL(12,8),
  681.     UNIQUE(ID_Przylacza,Numer)
  682. );
  683.  
  684. INSERT INTO Generatory (ID_Typu, ID_Przylacza, ID_Generatora, Numer) VALUES
  685.     (3, 1, 1, 1),
  686.     (3, 1, 2, 2),
  687.     (3, 1, 1, 3),
  688.     (3, 1, 1, 4),
  689.     (3, 1, 1, 5),
  690.     (3, 1, 1, 6),
  691.     (3, 1, 1, 7),
  692.     (3, 1, 1, 8),
  693.     (3, 1, 1, 9),
  694.     (3, 1, 1, 10),
  695.     (3, 1, 1, 11),
  696.     (3, 1, 1, 12),
  697.     (4, 2, 3, 1),
  698.     (4, 2, 4, 2),
  699.     (4, 2, 5, 3),
  700.     (4, 2, 6, 4),
  701.     (3, 3, 1, 1),
  702.     (3, 4, 2, 1),
  703.     (3, 5, 2, 1);
  704. -------------------------------------------------------------------------------------------------------------------------------------
  705. /*                                             +-------------------------------------+                                             */
  706. /*                                             |              +Zdjecia+              |                                             */
  707. /*                                             +-------------------------------------+                                             */
  708. CREATE TABLE Zdjecia
  709. (
  710.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  711.     ID_Generatora INTEGER REFERENCES Generatory(ID),
  712.     Termin DATETIME NOT NULL DEFAULT GETDATE(),
  713.     Zdjecie IMAGE,
  714.     Uwagi TEXT
  715. );
  716. /*                                         #=============================================#                                         */
  717. /*                                         |                   +INNE+                    |                                         */
  718. /*                                         #=============================================#                                         */
  719. /*                                             +-------------------------------------+                                             */
  720. /*                                             |                +FTP+                |                                             */
  721. /*                                             +-------------------------------------+                                             */
  722. CREATE TABLE FTP
  723. (
  724.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  725.     Url VARCHAR(80) NOT NULL,
  726.     Login VARCHAR(80) NOT NULL,
  727.     Haslo VARCHAR(80) NOT NULL,
  728.     OstatniaAktualizacja DATETIME NOT NULL,
  729.     OstatniPlik VARCHAR(80) NOT NULL,
  730.     Interwal INTEGER NOT NULL
  731. );
  732.  
  733. INSERT INTO FTP (Url,Login,Haslo,OstatniaAktualizacja,OstatniPlik,Interwal) VALUES
  734.     ('ftp://localhost/','Ulti','1234','2015-09-06 00:00:00','','24');
  735. /*                                             +-------------------------------------+                                             */
  736. /*                                             |            +HistoriaCen+            |                                             */
  737. /*                                             +-------------------------------------+                                             */
  738. CREATE TABLE HistoriaCen
  739. (
  740.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  741.     Termin DATETIME NOT NULL,
  742.     PMOZE_A DECIMAL(25,2),
  743.     PMBG DECIMAL(25,2),
  744.     PMOZE_BIO DECIMAL(25,2),
  745.     UNIQUE(Termin)
  746. );
  747. /*                                             +-------------------------------------+                                             */
  748. /*                                             |            +Translacja+             |                                             */
  749. /*                                             +-------------------------------------+                                             */
  750. CREATE TABLE Translacja
  751. (
  752.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  753.     Cel VARCHAR(80),
  754.     Nazwa VARCHAR(80) NOT NULL UNIQUE
  755. );
  756.  
  757. INSERT INTO Translacja (Cel,Nazwa) VALUES
  758.     ('ID_Awarii','CausaAveria'), ('Termin','FechaAveriaON'), ('Czas','DeltaTime'), ('Uwagi','Comment'), ('Alarm','BAlarma'), ('Krytyczny','Ultima'), -- TABELKA A
  759.     ('EnergiaCalkowita','EnerTot'), ('EnergiaRoczna','EnerAño'), ('EnergiaGodzinowa','EnerHor'), ('EnergiaDniowa','EnerDia'), -- TABELKA B
  760.     ('EnergiaMiesieczna','EnerMes'), ('SumaGodzinA','HoraRed'), ('SumaGodzinB','HoraMOK'), ('SumaGodzinC','HoraAmbOk'), -- TABELKA B
  761.     ('GodzinyA','HoraRedMes'), ('GodzinyB','HoraMOKMes'), ('GodzinyC','Horas_Amb_Mes'), ('Procent','Disptot'), -- TABELKA B
  762.     ('ProcentMiesieczny','DispMes'), ('Termin','FechaDatos'), -- TABELKA B
  763.     ('Wiatr','dVientoVertAlt1'), ('Odchylenie','dDesvVelVertAlt1'), -- TABELKA C
  764.     ('MocReaktywna','dPotReact'), ('Wiatr','dVelVientoF1sg'), ('Cosinus','dCosPhi'), ('Temperatura','dTempGen'), ('PozycjaGondoli','dPosNacelle'); -- TABELKA D
  765. /*                                             +-------------------------------------+                                             */
  766. /*                                             |            +XLSHistoria+            |                                             */
  767. /*                                             +-------------------------------------+                                             */
  768. CREATE TABLE XLSHistoria
  769. (
  770.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  771.     ID_Przylacza INTEGER REFERENCES Przylacza(ID),
  772.     Termin DATETIME NOT NULL,
  773.     Typ VARCHAR(80),
  774.     UNIQUE(Termin,Typ)
  775. );
  776.  
  777. INSERT INTO XLSHistoria(ID_Przylacza, Termin, Typ) VALUES
  778.     (1, '2015-06-01', 'Zestawienie'),
  779.     (1, '2015-05-03', 'Zestawienie'),
  780.     (1, '2015-05-02', 'Zestawienie');
  781. -------------------------------------------------------------------------------------------------------------------------------------
  782. /*                                             +-------------------------------------+                                             */
  783. /*                                             |              +XLSWpis+              |                                             */
  784. /*                                             +-------------------------------------+                                             */
  785. CREATE TABLE XLSWpis
  786. (
  787.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  788.     ID_Historii INTEGER NOT NULL REFERENCES XLSHistoria(ID),
  789.     Nazwa VARCHAR(80) NOT NULL,
  790.     Arkusz VARCHAR(80),
  791.     Wartosc VARCHAR(80) NOT NULL
  792. );
  793.  
  794. INSERT INTO XLSWpis(ID_Historii, Nazwa, Arkusz, Wartosc) VALUES
  795.     (1,'sheetName','','Dane godzinowe'),
  796.     (1,'dateInFileName','','False'),
  797.     (1,'dateInSheet','','True'),
  798.     (1,'datePosition','Zestawienie','A'),
  799.     (1,'dateSheetName','','Zestawienie'),
  800.     (1,'terminalNamePosition','Dane godzinowe','B'),
  801.     (1,'ppeNumberPosition','Dane godzinowe','C'),
  802.     (1,'commentsPosition','Dane godzinowe','D'),
  803.     (1,'commentsExist','Dane godzinowe','True'),
  804.     (1,'powerstationSeparatorExist','Dane godzinowe','True'),
  805.     (1,'powerstationSeparatorPosition','Dane godzinowe','A'),
  806.     (1,'powerstationPowerExist','Dane godzinowe','True'),
  807.     (1,'powerstationPowerPosition','Dane godzinowe','E'),  
  808.     (1,'activeEnergyRange','Dane godzinowe','G-AE'),
  809.     (1,'activeEnergyExist','Dane godzinowe','True'),
  810.     (1,'reactiveEnergyRange','',''),
  811.     (1,'reactiveEnergyExist','','False'),
  812.     (1,'commonEnergy','','False'),
  813.     (1,'commonSeparator','',''),
  814.     (1,'commonFirstEnergy','',''),
  815.     (1,'commonEnergyRange','',''),
  816.     (2,'sheetName','','Dane godzinowe'),
  817.     (2,'dateInFileName','','True'),
  818.     (2,'dateInSheet','','False'),
  819.     (2,'datePosition','Zestawienie','A'),
  820.     (2,'dateSheetName','','Zestawienie'),
  821.     (2,'terminalNamePosition','Dane godzinowe','B'),
  822.     (2,'ppeNumberPosition','Dane godzinowe','C'),
  823.     (2,'commentsPosition','Dane godzinowe','D'),
  824.     (2,'commentsExist','Dane godzinowe','True'),
  825.     (2,'powerstationSeparatorExist','Dane godzinowe','True'),
  826.     (2,'powerstationSeparatorPosition','Dane godzinowe','A'),
  827.     (2,'powerstationPowerExist','Dane godzinowe','True'),
  828.     (2,'powerstationPowerPosition','Dane godzinowe','E'),  
  829.     (2,'activeEnergyRange','Dane godzinowe','G-AE'),
  830.     (2,'activeEnergyExist','Dane godzinowe','True'),
  831.     (2,'reactiveEnergyRange','',''),
  832.     (2,'reactiveEnergyExist','','False'),
  833.     (2,'commonEnergy','','True'),
  834.     (2,'commonSeparator','',''),
  835.     (2,'commonFirstEnergy','',''),
  836.     (2,'commonEnergyRange','',''),
  837.     (3,'sheetName','','Dane godzinowe'),
  838.     (3,'dateInFileName','','True'),
  839.     (3,'dateInSheet','','False'),
  840.     (3,'datePosition','Zestawienie','A'),
  841.     (3,'dateSheetName','','Zestawienie'),
  842.     (3,'terminalNamePosition','Dane godzinowe','B'),
  843.     (3,'ppeNumberPosition','Dane godzinowe','C'),
  844.     (3,'commentsPosition','Dane godzinowe','D'),
  845.     (3,'commentsExist','Dane godzinowe','True'),
  846.     (3,'powerstationSeparatorExist','Dane godzinowe','True'),
  847.     (3,'powerstationSeparatorPosition','Dane godzinowe','A'),
  848.     (3,'powerstationPowerExist','Dane godzinowe','True'),
  849.     (3,'powerstationPowerPosition','Dane godzinowe','E'),  
  850.     (3,'activeEnergyRange','Dane godzinowe','G-AE'),
  851.     (3,'activeEnergyExist','Dane godzinowe','True'),
  852.     (3,'reactiveEnergyRange','',''),
  853.     (3,'reactiveEnergyExist','','False'),
  854.     (3,'commonEnergy','','True'),
  855.     (3,'commonSeparator','',''),
  856.     (3,'commonFirstEnergy','','EnergiaCzynna'),
  857.     (3,'commonEnergyRange','','');
  858. /*                                         #=============================================#                                         */
  859. /*                                         |                   +SKADY+                   |                                         */
  860. /*                                         #=============================================#                                         */
  861. /*                                             +-------------------------------------+                                             */
  862. /*                                             |          +KategorieAwarii+          |                                             */
  863. /*                                             +-------------------------------------+                                             */
  864. CREATE TABLE KategorieAwarii
  865. (
  866.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  867.     Nazwa VARCHAR(80) NOT NULL UNIQUE
  868. );
  869. -------------------------------------------------------------------------------------------------------------------------------------
  870. /*                                             +-------------------------------------+                                             */
  871. /*                                             |              +Awarie+               |                                             */
  872. /*                                             +-------------------------------------+                                             */
  873. CREATE TABLE Awarie
  874. (
  875.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  876.     ID_Kategorii INTEGER REFERENCES KategorieAwarii(ID),
  877.     Nazwa VARCHAR(80) NOT NULL UNIQUE
  878. );
  879. -------------------------------------------------------------------------------------------------------------------------------------
  880. /*                                             +-------------------------------------+                                             */
  881. /*                                             |              +Skada_A+              |                                             */
  882. /*                                             +-------------------------------------+                                             */
  883. CREATE TABLE Skada_A
  884. (
  885.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  886.     ID_Turbiny INTEGER NOT NULL REFERENCES Generatory(ID),
  887.     ID_Awarii INTEGER NOT NULL REFERENCES Awarie(ID),
  888.     Poczatek DATETIME NOT NULL,
  889.     Koniec DATETIME NOT NULL,
  890.     Czas INTEGER NOT NULL,
  891.     Uwagi TEXT,
  892.     Alarm BIT NOT NULL,
  893.     Krytyczny BIT NOT NULL
  894. );
  895. /*                                             +-------------------------------------+                                             */
  896. /*                                             |            +Skada_HDBF+             |                                             */
  897. /*                                             +-------------------------------------+                                             */
  898. CREATE TABLE Skada_HDBF
  899. (
  900.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  901.     ID_Turbiny INTEGER NOT NULL REFERENCES Generatory(ID),
  902.     Termin DATETIME NOT NULL,
  903.     EnergiaCalkowita INTEGER,
  904.     EnergiaRoczna INTEGER,
  905.     EnergiaMiesieczna INTEGER,
  906.     EnergiaGodzinowa INTEGER,
  907.     EnergiaDniowa INTEGER,
  908.     SumaGodzinA INTEGER,
  909.     SumaGodzinB INTEGER,
  910.     SumaGodzinC INTEGER,
  911.     GodzinyA INTEGER,
  912.     GodzinyB INTEGER,
  913.     GodzinyC INTEGER,
  914.     Procent DECIMAL(25,2),
  915.     ProcentZaokraglony DECIMAL(25,2)
  916. );
  917. /*                                             +-------------------------------------+                                             */
  918. /*                                             |              +Skada_T+              |                                             */
  919. /*                                             +-------------------------------------+                                             */
  920. CREATE TABLE Skada_T
  921. (
  922.     ID INTEGER NOT NULL IDENTITY(1,1) PRIMARY KEY,
  923.     ID_Turbiny INTEGER NOT NULL REFERENCES Generatory(ID),
  924.     Termin DATETIME NOT NULL,
  925.     MocCalkowita DECIMAL(25,2),
  926.     MocReaktywna DECIMAL(25,2),
  927.     Wiatr DECIMAL(25,2),
  928.     Cosinus DECIMAL(25,2),
  929.     Temperatura DECIMAL(25,2),
  930.     PozycjaGondoli DECIMAL(25,2)
  931. );
  932. GO
  933. /*                                         #=============================================#                                         */
  934. /*                                         |                 +FUNKCJE+                   |                                         */
  935. /*                                         #=============================================#                                         */
  936. /*                                             +-------------------------------------+                                             */
  937. /*                                             |         +funkcja_zapytania+         |                                             */
  938. /*                                             +-------------------------------------+                                             */
  939. CREATE FUNCTION funkcja_zapytania(@id_u INTEGER, @tryb VARCHAR(32))
  940. RETURNS @table TABLE("ID" INTEGER, "Nazwa" VARCHAR(64), "Treść" VARCHAR(1024), "ID_Użytkownika" INTEGER)
  941. AS
  942. BEGIN
  943.     IF @id_u IS NULL
  944.         IF @tryb = 'PREDEFINED'
  945.             INSERT INTO @table
  946.             SELECT
  947.                 Zapytania.ID,
  948.                 CASE @tryb
  949.                     WHEN 'ALL' THEN
  950.                         CASE
  951.                             WHEN ID_Uzytkownika > 0 THEN Zapytania.Nazwa + ' (' + Uzytkownicy.Login + ')'
  952.                             ELSE Zapytania.Nazwa + ' (predefiniowane)'
  953.                         END
  954.                     ELSE Zapytania.Nazwa
  955.                 END,
  956.                 Zapytania.Tresc,
  957.                 Zapytania.ID_Uzytkownika
  958.             FROM
  959.                 Zapytania
  960.             LEFT JOIN
  961.                 Uzytkownicy ON Uzytkownicy.ID = ID_Uzytkownika
  962.             LEFT JOIN
  963.                 Uprawnienia ON Uprawnienia.ID = ID_Uprawnien
  964.             WHERE
  965.                 ID_Uzytkownika IS NULL
  966.             ORDER BY 2;
  967.         ELSE
  968.             IF @tryb = 'USER'
  969.                 INSERT INTO @table
  970.                 SELECT
  971.                     Zapytania.ID,
  972.                     CASE @tryb
  973.                         WHEN 'ALL' THEN
  974.                             CASE
  975.                                 WHEN ID_Uzytkownika > 0 THEN Zapytania.Nazwa + ' (' + Uzytkownicy.Login + ')'
  976.                                 ELSE Zapytania.Nazwa + ' (predefiniowane)'
  977.                             END
  978.                         ELSE Zapytania.Nazwa
  979.                     END,
  980.                     Zapytania.Tresc,
  981.                     Zapytania.ID_Uzytkownika
  982.                 FROM
  983.                     Zapytania
  984.                 LEFT JOIN
  985.                     Uzytkownicy ON Uzytkownicy.ID = ID_Uzytkownika
  986.                 LEFT JOIN
  987.                     Uprawnienia ON Uprawnienia.ID = ID_Uprawnien
  988.                 WHERE
  989.                     Uprawnienia.Nazwa = 'Admin'
  990.                 ORDER BY 2;
  991.             ELSE
  992.                 INSERT INTO @table
  993.                 SELECT
  994.                     Zapytania.ID,
  995.                     CASE @tryb
  996.                         WHEN 'ALL' THEN
  997.                             CASE
  998.                                 WHEN ID_Uzytkownika > 0 THEN Zapytania.Nazwa + ' (' + Uzytkownicy.Login + ')'
  999.                                 ELSE Zapytania.Nazwa + ' (predefiniowane)'
  1000.                             END
  1001.                         ELSE Zapytania.Nazwa
  1002.                     END,
  1003.                     Zapytania.Tresc,
  1004.                     Zapytania.ID_Uzytkownika
  1005.                 FROM
  1006.                     Zapytania
  1007.                 LEFT JOIN
  1008.                     Uzytkownicy ON Uzytkownicy.ID = ID_Uzytkownika
  1009.                 LEFT JOIN
  1010.                     Uprawnienia ON Uprawnienia.ID = ID_Uprawnien
  1011.                 ORDER BY 2;
  1012.     ELSE
  1013.         IF @tryb = 'PREDEFINED'
  1014.             INSERT INTO @table
  1015.             SELECT
  1016.                 ID,
  1017.                 CASE @tryb
  1018.                     WHEN 'ALL' THEN
  1019.                         CASE
  1020.                             WHEN ID_Uzytkownika > 0 THEN Nazwa
  1021.                             ELSE Nazwa + ' (predefiniowane)'
  1022.                         END
  1023.                     ELSE Nazwa
  1024.                 END,
  1025.                 Tresc,
  1026.                 ID_Uzytkownika
  1027.             FROM
  1028.                 Zapytania
  1029.             WHERE
  1030.                 ID_Uzytkownika IS NULL
  1031.             ORDER BY 2
  1032.         ELSE
  1033.             IF @tryb = 'USER'
  1034.                 INSERT INTO @table
  1035.                 SELECT
  1036.                     ID,
  1037.                     CASE @tryb
  1038.                         WHEN 'ALL' THEN
  1039.                             CASE
  1040.                                 WHEN ID_Uzytkownika > 0 THEN Nazwa
  1041.                                 ELSE Nazwa + ' (predefiniowane)'
  1042.                             END
  1043.                         ELSE Nazwa
  1044.                     END,
  1045.                     Tresc,
  1046.                     ID_Uzytkownika
  1047.                 FROM
  1048.                     Zapytania
  1049.                 WHERE
  1050.                     ID_Uzytkownika = @id_u
  1051.                 ORDER BY 2
  1052.             ELSE
  1053.                 INSERT INTO @table
  1054.                 SELECT
  1055.                     ID,
  1056.                     CASE @tryb
  1057.                         WHEN 'ALL' THEN
  1058.                             CASE
  1059.                                 WHEN ID_Uzytkownika > 0 THEN Nazwa
  1060.                                 ELSE Nazwa + ' (predefiniowane)'
  1061.                             END
  1062.                         ELSE Nazwa
  1063.                     END,
  1064.                     Tresc,
  1065.                     ID_Uzytkownika
  1066.                 FROM
  1067.                     Zapytania
  1068.                 WHERE
  1069.                     ID_Uzytkownika = @id_u OR ID_Uzytkownika IS NULL
  1070.                 ORDER BY 2
  1071.     RETURN;
  1072. END;
  1073. GO
  1074. /*                                             +-------------------------------------+                                             */
  1075. /*                                             |     +procedura_usun_zapytanie+      |                                             */
  1076. /*                                             +-------------------------------------+                                             */
  1077. CREATE PROCEDURE funkcja_usun_zapytanie(@record_id INTEGER)
  1078. AS
  1079. BEGIN
  1080.     DELETE FROM zapytania WHERE id = @record_id;
  1081. END;
  1082. GO
  1083. /*                                             +-------------------------------------+                                             */
  1084. /*                                             |          +funkcja_tabele+           |                                             */
  1085. /*                                             +-------------------------------------+                                             */
  1086. CREATE FUNCTION funkcja_tabele()
  1087. RETURNS @table TABLE("Nazwa tabeli" VARCHAR(32))
  1088. AS
  1089. BEGIN
  1090.     INSERT INTO @table
  1091.     SELECT table_name
  1092.     FROM information_schema.tables
  1093.     WHERE table_type = 'BASE TABLE'
  1094.     RETURN;
  1095. END;
  1096. GO
  1097. /*                                             +-------------------------------------+                                             */
  1098. /*                                             |          +funkcja_kolumny+          |                                             */
  1099. /*                                             +-------------------------------------+                                             */
  1100. CREATE FUNCTION funkcja_kolumny(@tabela VARCHAR(32))
  1101. RETURNS @table TABLE("Kolumny" VARCHAR(32))
  1102. AS
  1103. BEGIN
  1104.     INSERT INTO @table
  1105.     SELECT column_name
  1106.     FROM information_schema.columns WHERE table_name = @tabela;
  1107.     RETURN;
  1108. END;
  1109. GO
  1110. /*                                         #=============================================#                                         */
  1111. /*                                         |                +WYZWALACZE+                 |                                         */
  1112. /*                                         #=============================================#                                         */
  1113. /*                                             +-------------------------------------+                                             */
  1114. /*                                             |   +wyzwalacz_dodanie_elektrowni+    |                                             */
  1115. /*                                             +-------------------------------------+                                             */
  1116. CREATE TRIGGER wyzwalacz_dodanie_elektrowni
  1117. ON Elektrownie
  1118. AFTER INSERT
  1119. AS
  1120. DECLARE @usr INTEGER;
  1121. DECLARE @cur CURSOR;
  1122. SET @cur = CURSOR FOR
  1123.     SELECT uzytkownicy.id
  1124.     FROM uzytkownicy
  1125.     JOIN uprawnienia ON uprawnienia.id = uzytkownicy.id_uprawnien
  1126.     WHERE uprawnienia.nazwa = 'MasterAdmin'
  1127. OPEN @cur
  1128. FETCH NEXT FROM @cur INTO @usr
  1129. WHILE @@FETCH_STATUS = 0
  1130. BEGIN
  1131.     INSERT INTO uzytkownicyelektrowni(id_elektrowni,id_uzytkownika,id_roli)
  1132.         SELECT ID, @usr, 1 FROM inserted
  1133.     FETCH NEXT FROM @cur INTO @usr
  1134. END
  1135. GO
  1136. /*                                             +-------------------------------------+                                             */
  1137. /*                                             |   +wyzwalacz_numery_generatorow+    |                                             */
  1138. /*                                             +-------------------------------------+                                             */
  1139. --CREATE TRIGGER wyzwalacz_numery_generatorow
  1140. --ON Generatory
  1141. --INSTEAD OF INSERT
  1142. --AS
  1143. --DECLARE @i INTEGER;
  1144. --BEGIN
  1145. --  SELECT @i = COUNT(id)+1 FROM Generatory WHERE ID_Przylacza = (SELECT ID_Przylacza FROM Inserted);
  1146. --  INSERT INTO Generatory(ID_Przylacza,ID_Generatora,Numer)
  1147. --      SELECT ID_Przylacza, ID_Generatora, @i FROM Inserted;
  1148. --END
  1149. --GO
  1150. /*                                             +-------------------------------------+                                             */
  1151. /*                                             |    +wyzwalacz_sprawdzenie_typow+    |                                             */
  1152. /*                                             +-------------------------------------+                                             */
  1153. --CREATE TRIGGER wyzwalacz_przylacza_sprawdzenie_typow
  1154. --ON Przylacza
  1155. --AFTER INSERT, UPDATE
  1156. --AS
  1157. --DECLARE @elek_id INTEGER
  1158. --DECLARE @cur CURSOR
  1159. --SET @cur = CURSOR FOR
  1160. --  SELECT ID FROM Elektrownie
  1161. --OPEN @cur
  1162. --FETCH NEXT FROM @cur INTO @elek_id
  1163. --WHILE @@FETCH_STATUS = 0
  1164. --BEGIN
  1165. --  IF(SELECT COUNT(*)
  1166. --      FROM (SELECT DISTINCT
  1167. --              CASE
  1168. --                  WHEN s.ID_DanychWiatrowych IS NOT NULL THEN 'Wiatrowa'
  1169. --                  WHEN s.ID_DanychWodnych IS NOT NULL THEN 'Wodna'
  1170. --                  WHEN s.ID_DanychSlonecznych IS NOT NULL THEN 'Słoneczna'
  1171. --                  ELSE 'Błąd'
  1172. --              END AS Typ
  1173. --              FROM Elektrownie e
  1174. --              LEFT JOIN Przylacza p ON p.ID_Elektrowni = e.ID
  1175. --              RIGHT JOIN Generatory g ON g.ID_Przylacza = p.ID
  1176. --              LEFT JOIN SlownikGeneratorow s ON s.ID = g.ID_Generatora
  1177. --              WHERE e.ID = @elek_id)
  1178. --      lista
  1179. --  ) > 1
  1180. --  RAISERROR('Elektrownia zawiera generatory różnych typów',16,1);
  1181. --  FETCH NEXT FROM @cur INTO @elek_id;
  1182. --END;
  1183. --GO
  1184. ---------------------------------------------------------------------------------------------------------------------------------------
  1185. --CREATE TRIGGER wyzwalacz_generatorow_sprawdzenie_typow
  1186. --ON Generatory
  1187. --AFTER INSERT, UPDATE
  1188. --AS
  1189. --DECLARE @elek_id INTEGER
  1190. --DECLARE @cur CURSOR
  1191. --SET @cur = CURSOR FOR
  1192. --  SELECT ID FROM Elektrownie
  1193. --OPEN @cur
  1194. --FETCH NEXT FROM @cur INTO @elek_id
  1195. --WHILE @@FETCH_STATUS = 0
  1196. --BEGIN
  1197. --  IF(SELECT COUNT(*)
  1198. --      FROM (SELECT DISTINCT
  1199. --              CASE
  1200. --                  WHEN s.ID_DanychWiatrowych IS NOT NULL THEN 'Wiatrowa'
  1201. --                  WHEN s.ID_DanychWodnych IS NOT NULL THEN 'Wodna'
  1202. --                  WHEN s.ID_DanychSlonecznych IS NOT NULL THEN 'Słoneczna'
  1203. --                  ELSE 'Błąd'
  1204. --              END AS Typ
  1205. --              FROM Elektrownie e
  1206. --              LEFT JOIN Przylacza p ON p.ID_Elektrowni = e.ID
  1207. --              RIGHT JOIN Generatory g ON g.ID_Przylacza = p.ID
  1208. --              LEFT JOIN SlownikGeneratorow s ON s.ID = g.ID_Generatora
  1209. --              WHERE e.ID = @elek_id)
  1210. --      lista
  1211. --  ) > 1
  1212. --  RAISERROR('Elektrownia zawiera generatory różnych typów',16,1);
  1213. --  FETCH NEXT FROM @cur INTO @elek_id;
  1214. --END;
  1215. --GO
  1216. ---------------------------------------------------------------------------------------------------------------------------------------
  1217. --CREATE TRIGGER wyzwalacz_slownik_sprawdzenie_typow
  1218. --ON SlownikGeneratorow
  1219. --AFTER INSERT, UPDATE
  1220. --AS
  1221. --DECLARE @elek_id INTEGER
  1222. --DECLARE @cur CURSOR
  1223. --SET @cur = CURSOR FOR
  1224. --  SELECT ID FROM Elektrownie
  1225. --OPEN @cur
  1226. --FETCH NEXT FROM @cur INTO @elek_id
  1227. --WHILE @@FETCH_STATUS = 0
  1228. --BEGIN
  1229. --  IF(SELECT COUNT(*)
  1230. --      FROM (SELECT DISTINCT
  1231. --              CASE
  1232. --                  WHEN s.ID_DanychWiatrowych IS NOT NULL THEN 'Wiatrowa'
  1233. --                  WHEN s.ID_DanychWodnych IS NOT NULL THEN 'Wodna'
  1234. --                  WHEN s.ID_DanychSlonecznych IS NOT NULL THEN 'Słoneczna'
  1235. --                  ELSE 'Błąd'
  1236. --              END AS Typ
  1237. --              FROM Elektrownie e
  1238. --              LEFT JOIN Przylacza p ON p.ID_Elektrowni = e.ID
  1239. --              RIGHT JOIN Generatory g ON g.ID_Przylacza = p.ID
  1240. --              LEFT JOIN SlownikGeneratorow s ON s.ID = g.ID_Generatora
  1241. --              WHERE e.ID = @elek_id)
  1242. --      lista
  1243. --  ) > 1
  1244. --  RAISERROR('Elektrownia zawiera generatory różnych typów',16,1);
  1245. --  FETCH NEXT FROM @cur INTO @elek_id;
  1246. --END;
  1247. --GO
  1248. /*                                             +-------------------------------------+                                             */
  1249. /*                                             |+wyzwalacz_skada_a_obliczenie_czasu+ |                                             */
  1250. /*                                             +-------------------------------------+                                             */
  1251. CREATE TRIGGER wyzwalacz_skada_a_czas_u
  1252. ON Skada_A
  1253. AFTER UPDATE
  1254. AS
  1255. BEGIN
  1256.     IF NOT UPDATE(Czas)
  1257.         UPDATE Skada_A
  1258.         SET Czas = (SELECT DATEDIFF(second, Poczatek, Koniec) FROM Inserted)
  1259.         WHERE ID = (SELECT ID FROM Inserted)
  1260. END;
  1261. GO
  1262.  
  1263. CREATE TRIGGER wyzwalacz_skada_a_czas_i
  1264. ON Skada_A
  1265. INSTEAD OF INSERT
  1266. AS
  1267. BEGIN
  1268.     IF (SELECT Uwagi FROM Inserted) IS NOT NULL
  1269.         INSERT INTO Skada_A(ID_Turbiny, ID_Awarii, Poczatek, Koniec, Czas, Uwagi, Alarm, Krytyczny)
  1270.             SELECT ID_Turbiny, ID_Awarii, Poczatek, Koniec, DATEDIFF(second, Poczatek, Koniec), Uwagi, Alarm, Krytyczny FROM Inserted
  1271.     ELSE
  1272.         INSERT INTO Skada_A(ID_Turbiny, ID_Awarii, Poczatek, Koniec, Czas, Alarm, Krytyczny)
  1273.             SELECT ID_Turbiny, ID_Awarii, Poczatek, Koniec, DATEDIFF(second, Poczatek, Koniec), Alarm, Krytyczny FROM Inserted
  1274. END;
  1275. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement