Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.42 KB | None | 0 0
  1. --1
  2.  
  3. CREATE DATABASE Priprema1
  4.  
  5. USE Priprema1
  6. GO
  7.  
  8. CREATE TABLE Proizvodi
  9. (
  10.     ProizvodID INT NOT NULL IDENTITY (1,1) CONSTRAINT PK_Proizvodi PRIMARY KEY,
  11.     Sifra NVARCHAR(10) NOT NULL CONSTRAINT UQ_Sifra UNIQUE,
  12.     Naziv NVARCHAR(50) NOT NULL,
  13.     Cijena DECIMAL(18,2)
  14. )
  15.  
  16. CREATE TABLE Skladista
  17. (
  18.     SkladisteID INT NOT NULL IDENTITY (1,1) CONSTRAINT PK_Skladista PRIMARY KEY,
  19.     Naziv NVARCHAR(50) NOT NULL,
  20.     Oznaka NVARCHAR(10) NOT NULL CONSTRAINT UQ_Oznaka UNIQUE,
  21.     Lokacija NVARCHAR(50) NOT NULL
  22. )
  23.  
  24. CREATE TABLE SkladisteProizvodi
  25. (
  26.     ProizvodID INT NOT NULL CONSTRAINT FK_SkladisteProizvodi_Proizvodi FOREIGN KEY REFERENCES Proizvodi (ProizvodID),
  27.     SkladisteID INT NOT NULL CONSTRAINT FK_SkladisteProizvodi_Skladista FOREIGN KEY REFERENCES Skladista (SkladisteID),
  28.     CONSTRAINT PK_SkladisteProizvodi PRIMARY KEY (ProizvodID, SkladisteID),
  29.     Stanje DECIMAL(18,2) NOT NULL
  30. )
  31.  
  32. --2
  33.  
  34. INSERT INTO Skladista
  35. VALUES ('Skladiste One', 'SK1', 'Mostar'),
  36.        ('Skladiste Two', 'Sk2', 'Sarajevo'),
  37.        ('Skladiste Three', 'Sk3', 'Banja Luka')
  38.  
  39. USE AdventureWorks2017
  40. GO
  41.  
  42. INSERT INTO Priprema1.dbo.Proizvodi
  43. SELECT TOP 10 S.ProductNumber, S.Name, S.ListPrice
  44. FROM (SELECT P.ProductNumber, PS.Name, P.ListPrice, COUNT(SOD.ProductID) AS NajProdavaniji
  45.       FROM Production.Product AS P INNER JOIN Production.ProductSubcategory AS PS
  46.       ON P.ProductSubcategoryID = PS.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC
  47.       ON PS.ProductCategoryID = PC.ProductCategoryID INNER JOIN Sales.SalesOrderDetail AS SOD
  48.       ON P.ProductID = SOD.ProductID
  49.       WHERE PS.Name LIKE '%Bikes%'
  50.       GROUP BY P.ProductNumber, PS.Name, P.ListPrice) AS S
  51. ORDER BY S.ListPrice DESC
  52.  
  53. USE Priprema1
  54. GO
  55.  
  56. INSERT INTO SkladisteProizvodi
  57. SELECT P.ProizvodID, (SELECT S.SkladisteID
  58.                       FROM Skladista AS S
  59.                       WHERE S.SkladisteID = 1), 100
  60. FROM Proizvodi AS P
  61.  
  62. INSERT INTO SkladisteProizvodi
  63. SELECT P.ProizvodID, (SELECT S.SkladisteID
  64.                       FROM Skladista AS S
  65.                       WHERE S.SkladisteID = 2), 100
  66. FROM Proizvodi AS P
  67.  
  68. INSERT INTO SkladisteProizvodi
  69. SELECT P.ProizvodID, (SELECT S.SkladisteID
  70.                       FROM Skladista AS S
  71.                       WHERE S.SkladisteID = 3), 100
  72. FROM Proizvodi AS P
  73.  
  74. --3
  75.  
  76. CREATE PROCEDURE usp_stanje_update
  77. (
  78.     @ProizvodID INT,
  79.     @SkladisteID INT
  80. )
  81. AS
  82. BEGIN
  83.     UPDATE SkladisteProizvodi
  84.     SET Stanje = Stanje + 15 --moze li se omoguciti da svaki put proizvoljno unesemo povecanje
  85.     WHERE ProizvodID = @ProizvodID AND SkladisteID = @SkladisteID
  86. END
  87.  
  88. EXEC usp_stanje_update 1, 1
  89.  
  90. --4
  91.  
  92. CREATE NONCLUSTERED INDEX IX_Proizvodi ON Proizvodi
  93. (Sifra, Naziv) INCLUDE (Cijena)
  94.  
  95. SELECT * FROM Proizvodi
  96. WHERE Sifra IS NULL OR Cijena > 95
  97.  
  98. ALTER INDEX IX_Proizvodi ON Proizvodi
  99. DISABLE
  100.  
  101. --5
  102.  
  103. CREATE VIEW view_pro_skl_sklpro AS
  104.     SELECT P.Sifra, P.Naziv, P.Cijena, S.Oznaka, S.Naziv AS N, S.Lokacija, SK.Stanje
  105.     FROM Proizvodi AS P INNER JOIN SkladisteProizvodi AS SK
  106.         ON P.ProizvodID = SK.ProizvodID INNER JOIN Skladista AS S
  107.         ON SK.SkladisteID = S.SkladisteID
  108.  
  109. --6
  110.  
  111. CREATE PROCEDURE usp_sifra_proizvoda
  112. (
  113.     @Sifra NVARCHAR(10)
  114. )
  115. AS
  116. BEGIN
  117.     SELECT V.Sifra, V.Naziv, V.Cijena, SUM(V.Stanje) AS Ukupno
  118.     FROM view_pro_skl_sklpro AS V
  119.     WHERE Sifra = @Sifra
  120.     GROUP BY V.Sifra, V.Naziv, V.Cijena
  121. END
  122.  
  123. EXEC usp_sifra_proizvoda 'BK-R93R-56'
  124.  
  125. --7
  126.  
  127. CREATE PROCEDURE usp_insert_proizvodi
  128. (
  129.     @Sifra NVARCHAR(10),
  130.     @Naziv NVARCHAR(50),
  131.     @Cijena DECIMAL(18,2)
  132. )
  133. AS
  134. BEGIN
  135.     INSERT INTO Proizvodi
  136.     VALUES (@Sifra, @Naziv, @Cijena)
  137.  
  138.     INSERT INTO SkladisteProizvodi
  139.     VALUES ((SELECT ProizvodID FROM Proizvodi WHERE Naziv = @Naziv), 1, 0)
  140.  
  141.     INSERT INTO SkladisteProizvodi
  142.     VALUES ((SELECT ProizvodID FROM Proizvodi WHERE Naziv = @Naziv), 2, 0)
  143.    
  144.     INSERT INTO SkladisteProizvodi
  145.     VALUES ((SELECT ProizvodID FROM Proizvodi WHERE Naziv = @Naziv), 3, 0)
  146. END
  147.  
  148. EXEC usp_insert_proizvodi '123-456-78', 'Novi Naziv', 1599
  149.  
  150. --8
  151.  
  152. CREATE PROCEDURE usp_delete_proizvod
  153. (
  154.     @Sifra NVARCHAR(10)
  155. )
  156. AS
  157. BEGIN
  158.     DELETE SkladisteProizvodi
  159.     FROM Proizvodi AS P INNER JOIN SkladisteProizvodi AS SK
  160.         ON P.ProizvodID = SK.ProizvodID AND Sifra = @Sifra
  161.    
  162.     DELETE FROM Proizvodi
  163.     WHERE Sifra = @Sifra
  164. END
  165.  
  166. EXEC usp_delete_proizvod '123-456-78'
  167.  
  168. --9
  169. --a
  170. CREATE PROCEDURE usp_procedura
  171. AS
  172. BEGIN
  173.     SELECT * FROM view_pro_skl_sklpro
  174. END
  175.  
  176. EXEC usp_procedura
  177. --b
  178. ALTER PROCEDURE usp_procedura
  179. (
  180.     @Sifra NVARCHAR(10)
  181. )
  182. AS
  183. BEGIN
  184.     SELECT * FROM view_pro_skl_sklpro
  185.     WHERE Sifra = @Sifra
  186. END
  187.  
  188. EXEC usp_procedura 'BK-R93R-56'
  189. --c
  190. ALTER PROCEDURE usp_procedura
  191. (
  192.     @Sifra NVARCHAR(10),
  193.     @Oznaka NVARCHAR(10)
  194. )
  195. AS
  196. BEGIN
  197.     SELECT * FROM view_pro_skl_sklpro
  198.     WHERE Sifra = @Sifra AND Oznaka = @Oznaka
  199. END
  200.  
  201. EXEC usp_procedura 'BK-R93R-56', 'Sk3'
  202.  
  203. --d
  204. ALTER PROCEDURE usp_procedura
  205. (
  206.     @Sifra NVARCHAR(10),
  207.     @Lokacija NVARCHAR(50)
  208. )
  209. AS
  210. BEGIN
  211.     SELECT * FROM view_pro_skl_sklpro
  212.     WHERE Sifra = @Sifra AND Lokacija = @Lokacija
  213. END
  214.  
  215. EXEC usp_procedura 'BK-R93R-56', 'Mostar'
  216.  
  217. --e
  218. ALTER PROCEDURE usp_procedura
  219. (
  220.     @Sifra NVARCHAR(10),
  221.     @Oznaka NVARCHAR(10),
  222.     @Lokacija NVARCHAR(50)
  223. )
  224. AS
  225. BEGIN
  226.     SELECT * FROM view_pro_skl_sklpro
  227.     WHERE Sifra = @Sifra AND Oznaka = @Oznaka AND Lokacija = @Lokacija
  228. END
  229.  
  230. EXEC usp_procedura 'BK-R93R-56', 'Sk3', 'Banja Luka'
  231.  
  232. --10
  233.  
  234. BACKUP DATABASE Priprema1 TO
  235. DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\Priprema1.bak'
  236.  
  237. BACKUP DATABASE Priprema1 TO
  238. DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\Priprema1_diff.bak'
  239. WITH DIFFERENTIAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement