tavaline programm või funktsioon, mis käivitab mitu tegevust.
CREATE TABLE pidupaev(
id int primary key identity(1,1),
kuupaev date,
pidu varchar(50),
riik varchar(50));
INSERT INTO pidupaev(kuupaev, pidu, riik)
VALUES ('2024-02-24', 'Iseseisvusäev', 'Eesti'),
('2024-09-11', 'Sünnipäev', 'Eesti'),
('2024-03-31', 'Ülestõusmispühadepäev', 'Eesti'),
('2024-03-17', 'Püha Patricku Päev', 'Eesti'),
('2024-03-24', 'Paalmepuudepüha', 'Eesti'),
('2024-03-28', 'Suur neljapäev', 'Eesti'),
('2024-03-08', 'Näistepäev', 'Eesti'),
('2024-02-09', 'Luuvalupäev', 'Eesti'),
('2024-12-31', 'Uusaasta', 'Eesti'),
('2024-04-14', 'Künnipäev', 'Eesti');
Select * from pidupaev;
--kuvab kõik miss on
USE TsarevTARpv23;
go
create procedure tabeliKuvamine
AS
BEGIN
SELECT * FROM pidupaev;
END;
--kutse
EXEC tabeliKuvamine;
--loo protseduur, mis täidab tabeli
USE TsarevTARpv23;
go
create procedure lisaTabeli
@kuupaev date,
@pidu varchar(50),
@riik varchar(50)
AS
BEGIN
INSERT INTO pidupaev(kuupaev, pidu, riik)
VALUES(@kuupaev, @pidu, @riik);
SELECT * FROM pidupaev;
END;
--kutse
EXEC lisaTabeli '2024-12-24', 'Jõululaupäev', 'Eesti';
EXEC lisaTabeli '2024-03-29', 'Suur reede', 'Eesti';
EXEC lisaTabeli '2024-08-20', 'Taasiseseisvumispäev', 'Eesti';
EXEC lisaTabeli '2024-07-24', 'Jaanipäev', 'Eesti';
EXEC lisaTabeli '2024-06-23', 'Võidupüha', 'Eesti';
EXEC lisaTabeli '2024-12-24', 'Esimene Jõulupüha', 'Eesti';
EXEC lisaTabeli '2024-12-25', 'Teine Jõulupüha', 'Eesti';
EXEC lisaTabeli '2024-06-04', 'Eesti lipu päev', 'Eesti';
EXEC lisaTabeli '2024-11-02', 'Hingedepäev', 'Eesti';
EXEC lisaTabeli '2024-11-10', 'Isadepäev', 'Eesti';
--kustata id järgi
USE TsarevTARpv23
GO
CREATE PROCEDURE kustutaIdjargi
@deleteid int
AS
BEGIN
SELECT * FROM pidupaev;
DELETE FROM pidupaev
Where id=@deleteid;
SELECT * FROM pidupaev;
END;
--kutse
EXEC kustutaIdjargi @deleteid=2;
--kuvame kõik peod mis algavad P tähega
USE TsarevTARpv23;
go
CREATE PROCEDURE peodAlgavad
@taht char(1)
AS
BEGIN
SELECT kuupaev, pidu
FROM pidupaev
Where pidu Like @taht + '%';
END;
--kutse
EXEC peodAlgavad 'P'
--kuva samal kuul sündinud õpetajad
USE TsarevTARpv23;
go
CREATE PROCEDURE vanusjargi
@sundinudkuu int
AS
BEGIN
SELECT nimi, aastatvana
FROM opetaja
Where aastatvana Like @sundinudkuu;
END;
--kutse
EXEC vanusjargi '45'
--otsi esimese tähe järgi
USE TsarevTARpv23;
go
CREATE PROCEDURE nimiAlgavad
@taht char(1)
AS
BEGIN
SELECT nimi
FROM opetaja
Where nimi Like @taht + '%';
END;
--kutse
EXEC nimiAlgavad'M'
USE TsarevTARpv23
GO
CREATE PROCEDURE kustutaOpetaja
@deleteid int
AS
BEGIN
SELECT * FROM opetaja;
DELETE FROM opetaja
Where id=@deleteid;
SELECT * FROM opetaja;
END;
--kutse
EXEC kustutaOpetaja @deleteid=1;
CREATE TABLE opetaja(
id int primary key identity(1,1),
aastatvana int,
aine varchar(50),
nimi varchar(50),
sugu char(5));
INSERT INTO opetaja(sugu, nimi, aastatvana, aine)
VALUES ('Mees', 'Viktor', 45, 'Programmeerimine'),
('Mees', 'Mikhail', 44, 'Arvuti ja taristuosad'),
('Mees', 'Maksim', 34, 'Kehaline kasvatus'),
('Mees', 'Toivo', 57, 'Ühiskonnaõpetus'),
('Mees', 'Sergei', 32, 'Infotehnoloogia'),
('Naine', 'Marina', 28, 'Programmeerimine'),
('Naine', 'Irina', 29, 'Andmebaasisüsteemide alused'),
('Naine', 'Marina', 51, 'Majandust'),
('Naine', 'Anastasia', 22, 'Multimeedia'),
('Naine', 'Lury', 32, 'Operatsioonisüsteemide alused');
SELECT * FROM opetaja;