Stored Procedures/ SQL Server

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;