Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.29 KB | None | 0 0
  1. Lekérdezésből nézet létrehozása (későbbiekben erre  nézetre tudunk hivatkozni mint táblára)
  2.  
  3. CREATE VIEW kishallgatok AS
  4. SELECT neptun, szdat, tel
  5. FROM hallgatok
  6. /* létrehoz egy táblát (nézetet hoztunk létre) a minineptun/views alatt*/
  7.  
  8. CREATE DATABASE DB /*létrehozom az adatbázist*/
  9. GO
  10. USE DB /*használom ezt az adatbázist*/
  11. GO
  12. CREATE TABLE Table1 (col1 int,col2 int,col3 int)
  13. INSERT INTO Table1 VALUES (1,2,3)
  14.  
  15. jegyzet (utasítás szerkezetek, amiket majd használunk)
  16.  
  17. USE adatbneve /*amelyik adatbázist használjuk*/
  18.  
  19. DECLARE @x int; /*lokális változó létrehozása*/ (@@x int; - globális változó) (@@@x ez már lokális lenne)
  20. SET @x=5; /*értéket adunk a változónak*/
  21. SELECT @x; /*lekérdezzük*/
  22.  
  23. Vezérlési szerkezet:
  24. WHILE feltétel
  25. BEGIN ... END
  26.  
  27. Elágazások:
  28. IF feltétel
  29. BEGIN ... END
  30. ELSE
  31. BEGIN ... END
  32.  
  33. /*Írjunk egy transact sqlScriptet, ami egy változóban eltárolja a hallgatók számát és azt megjeleníti az eredmény táblában*/
  34.  
  35. DECLARE @i int
  36. SET @i=(SELECT COUNT (neptun) FROM hallgatok)
  37. SELECT @i
  38. PRINT @i
  39.  
  40. /*írjon egy transact sqlscriptet, amely kiszámolja, hogy összesen hány rekordja van a DB adatbázis Table1 táblájának
  41. és a minineptun adatbázis jegyek táblájának*/
  42.  
  43. USE DB
  44. DECLARE @i int
  45. SET @i=(SELECT COUNT (*) FROM Table1)
  46.  
  47. USE minineptun
  48. DECLARE @j int
  49. SET @j=(SELECT COUNT (*) FROM hallgatok)
  50.  
  51. SELECT @i+@j
  52.  
  53. /*Adjunk minden hallgatónak in008 tárgyból egyel jobb jegyet mindaddig, amíg az utoljára szerzett jegyeik
  54. tantárgyi átlaga el nem éri a négyest*/
  55.  
  56. WHILE (SELECT AVG(CAST(jegy AS float)) AS 'Átlag'
  57.     FROM jegyek j
  58.     WHERE tkod='in008' AND
  59.     uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008'))<4
  60. BEGIN
  61.     UPDATE jegyek SET jegy=jegy+1
  62.     FROM jegyek j
  63.     WHERE tkod='in008' AND jegy<5 AND
  64.     uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008')
  65. END
  66. PRINT 'KÉSZ'
  67.  
  68.  
  69. /*tárolt eljárás készítése*/
  70.  
  71. CREATE PROC JobbJegy AS /*tárolt eljárás - minineptun/Programmability/Stored Procedures/...*/
  72. WHILE (SELECT AVG(CAST(jegy AS float)) AS 'Átlag'
  73.     FROM jegyek j
  74.     WHERE tkod='in008' AND
  75.     uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008'))<4
  76. BEGIN
  77.     UPDATE jegyek SET jegy=jegy+1
  78.     FROM jegyek j
  79.     WHERE tkod='in008' AND jegy<5 AND
  80.     uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008')
  81. END
  82. PRINT 'KÉSZ'
  83.  
  84. exec JobbJegy /*futtatása*/
  85. (egy tárolt eljárást máshonnan is megtudunk hívni)
  86.  
  87.  
  88. /*készitsen tárolt eljárást, mely a kapott paraméterekben szereplő értékeket szúrja be új rekordként a tantárgyak táblába
  89. az eljárást ellenőrizze hogy a kapott tábla létezik e, ha igen hibakóddal térjen vissza*/
  90.  
  91. CREATE PROCEDURE Tantargy_insert
  92. @kod nvarchar(13), @nev nvarchar(40), @kredit tinyint, @tkov nchar(1), @visszater int
  93. OUTPUT
  94. AS
  95.     IF EXISTS (SELECT tkod FROM tantargyak WHERE tkod=@kod)
  96.         SET @visszater=-1
  97.     ELSE
  98.         BEGIN
  99.             INSERT INTO tantargyak VALUES (@kod, @nev, @kredit, @tkov)
  100.             SET @visszater=0
  101.         END
  102.  
  103. /*felvitel*/
  104.  
  105. DECLARE @retval int
  106. EXECUTE Tantargy_insert 'in010_2', 'Vállalati információs rendszerek 2',3, 'v', @retval OUTPUT
  107. IF @retval<>0
  108.     PRINT 'Ilyen tantárgykód már létezik.'
  109. ELSE
  110.     PRINT 'A felvitel rendben megtörtént.'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement