Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Lekérdezésből nézet létrehozása (későbbiekben erre nézetre tudunk hivatkozni mint táblára)
- CREATE VIEW kishallgatok AS
- SELECT neptun, szdat, tel
- FROM hallgatok
- /* létrehoz egy táblát (nézetet hoztunk létre) a minineptun/views alatt*/
- CREATE DATABASE DB /*létrehozom az adatbázist*/
- GO
- USE DB /*használom ezt az adatbázist*/
- GO
- CREATE TABLE Table1 (col1 int,col2 int,col3 int)
- INSERT INTO Table1 VALUES (1,2,3)
- jegyzet (utasítás szerkezetek, amiket majd használunk)
- USE adatbneve /*amelyik adatbázist használjuk*/
- DECLARE @x int; /*lokális változó létrehozása*/ (@@x int; - globális változó) (@@@x ez már lokális lenne)
- SET @x=5; /*értéket adunk a változónak*/
- SELECT @x; /*lekérdezzük*/
- Vezérlési szerkezet:
- WHILE feltétel
- BEGIN ... END
- Elágazások:
- IF feltétel
- BEGIN ... END
- ELSE
- BEGIN ... END
- /*Í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*/
- DECLARE @i int
- SET @i=(SELECT COUNT (neptun) FROM hallgatok)
- SELECT @i
- PRINT @i
- /*írjon egy transact sqlscriptet, amely kiszámolja, hogy összesen hány rekordja van a DB adatbázis Table1 táblájának
- és a minineptun adatbázis jegyek táblájának*/
- USE DB
- DECLARE @i int
- SET @i=(SELECT COUNT (*) FROM Table1)
- USE minineptun
- DECLARE @j int
- SET @j=(SELECT COUNT (*) FROM hallgatok)
- SELECT @i+@j
- /*Adjunk minden hallgatónak in008 tárgyból egyel jobb jegyet mindaddig, amíg az utoljára szerzett jegyeik
- tantárgyi átlaga el nem éri a négyest*/
- WHILE (SELECT AVG(CAST(jegy AS float)) AS 'Átlag'
- FROM jegyek j
- WHERE tkod='in008' AND
- uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008'))<4
- BEGIN
- UPDATE jegyek SET jegy=jegy+1
- FROM jegyek j
- WHERE tkod='in008' AND jegy<5 AND
- uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008')
- END
- PRINT 'KÉSZ'
- /*tárolt eljárás készítése*/
- CREATE PROC JobbJegy AS /*tárolt eljárás - minineptun/Programmability/Stored Procedures/...*/
- WHILE (SELECT AVG(CAST(jegy AS float)) AS 'Átlag'
- FROM jegyek j
- WHERE tkod='in008' AND
- uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008'))<4
- BEGIN
- UPDATE jegyek SET jegy=jegy+1
- FROM jegyek j
- WHERE tkod='in008' AND jegy<5 AND
- uv=(SELECT MAX(uv) FROM jegyek j2 WHERE j2.neptun=j.neptun AND tkod='in008')
- END
- PRINT 'KÉSZ'
- exec JobbJegy /*futtatása*/
- (egy tárolt eljárást máshonnan is megtudunk hívni)
- /*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
- az eljárást ellenőrizze hogy a kapott tábla létezik e, ha igen hibakóddal térjen vissza*/
- CREATE PROCEDURE Tantargy_insert
- @kod nvarchar(13), @nev nvarchar(40), @kredit tinyint, @tkov nchar(1), @visszater int
- OUTPUT
- AS
- IF EXISTS (SELECT tkod FROM tantargyak WHERE tkod=@kod)
- SET @visszater=-1
- ELSE
- BEGIN
- INSERT INTO tantargyak VALUES (@kod, @nev, @kredit, @tkov)
- SET @visszater=0
- END
- /*felvitel*/
- DECLARE @retval int
- EXECUTE Tantargy_insert 'in010_2', 'Vállalati információs rendszerek 2',3, 'v', @retval OUTPUT
- IF @retval<>0
- PRINT 'Ilyen tantárgykód már létezik.'
- ELSE
- PRINT 'A felvitel rendben megtörtént.'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement