TICK Logo
Banner

Leximi, regjistrimi, rifreskimi dhe fshirja e shënimeve në SQL Server përmes variablave

Para se te ilustrojme futjen e shenimeve ne nje databaze, perkatesisht ne nje tabele ne SQL Server permes SQL variablave, le te krijojme nje tabele ne tecilen ruhen informatat e pushimeve te punetoreve per nje departament perkates brenda nje kompanie. Psh departamenti ne fjale te jete: IT.

Qellimi yne eshte qe te krijojme tabelen perkatese me emrin IT, dhe mandej t’i regjistrojme shenimet permes SQL sintakses duke perdore variablat!
Krijimi i tabeles me informatat perkatese te kolonave dhe tipin e te dhenave eshte paraqitur si ne vijim (ku supozohet qe paraprakisht ekziston databaza me emrin Pushimet):

Krijimi i tabeles, kolonave dhe definimi i tipit te te dhenave
use 
Pushimet
go
Create 
table IT
(
IdPunetori           int IDENTITY NOT NULL,
Emri                      nvarchar(40NOT NULL,
Mbiemri               nvarchar(40) NOT NULL,
Departamenti     nvarchar(60) NOT NULL,
TitulliPunes         nvarchar(80),
LlojiPushimit       nvarchar(30) NOT NULL,
DataEShkuarjes  date NOT NULL,
DataEKthimit      date NOT NULL,
Pershkrimi          nvarchar(200) NOT NULL
);

Dihet qe shenimet mund t’i regjistrojme edhe permes metodes se “zakonshme”, mirepo ne rastin tone le te provojme nje metode tjeter per futjen eshenimevePasi ne rastin tone kemi vetem 3 lloje te pushimevePushim vjetor, Pushim mjekesor, dhe Pushim i lindjes, atehere keto vlera mund t’ideklarojme si variabla dhe mandej keto variabla t’i perdorim per futjen e shenimeve.


Le 
t’i emerojme variablat keshtu:
@pv = ‘Pushim vjetor
@pm = ‘Pushim mjekesor
@pl = ‘Pushim i lindjes’

Regjistrimi i shenimeve – INSERT INTO
Pra, SQL sintaksa e futjes se shenimeve permes variablave do te ishte si ne vijim:
use Pushimet
go
Declare @pv varchar(20) = ‘Pushim vjetor
Declare @pm varchar(20) = ‘Pushim mjekesor
Declare @pl varchar(20) = ‘Pushim i lindjes

Insert into IT Values (‘Fazli‘,’Gashi’,’IT’,’Menaxher IT-se’,@pv,‘2017-03-15’,’2017-03-28‘,’Pushim‘), (‘Shpresa’,’Berisha’,’IT’,’Zhvilluese softverike’,@pl,’2017-02-18′,’2017-08-18′,’Kerkese per pushim te lindjes‘), (‘Burim’,’Kelmendi’,’IT’,’Administrator i databazave‘,@pm,’2016-11-18′,’2016-11-18′,’Kam qene me grip’), (‘Lavdim‘,’Krasniqi’,’IT’,’Zhvillues softverik’,@pv,’2016-11-17′,‘2016-11-28‘,’Shfrytezimi i pushimit nga viti i kaluar’), (‘Berat‘,’Maliqi’,’IT’,’Administrator i databazave‘,@pm,’2017-02-05’,2017-02-10‘,’Kam qene i semure’), (‘Armend’,’Gashi’,’IT’,’Administrator i sistemeve’,@pv,’2017-04-10′,’2016-05-10′,’Pushim per nevoja personale’);

Pas regjistrimit te shenimeve rezultati do te ishte si meposhte:
Select * from IT

Leximi i shenimeve – READ
Le supozojme qe deshirojme t’i shohim pushimet e punetoreve qe kane marre pushim te lindjes, atehere SQL sintaksa permes variablave do te ishte si ne vijim:
use Pushimet
go
Declare @pl varchar(20) = ‘Pushim i lindjes’
Select * FROM IT WHERE LlojiPushimit = @pl
Me c’rast rezultati do te ishte si meposhte:

Rifreskimi i shenimeve – UPDATE

Po supozojme qe ne njeren nga kerkesat per pushim eshte bere gabim gjate plotesimit te shenimeve, psh nese punetori me ID = 6 ka perzgjedhur llojin e pushimit gabim (ose per shkak se ne rastin tone nuk ka qene ne dispozicion opsioni per pushim pa pagese)! Ne kete rast nevojitet te permiresohet rreshti perkates ne tabele, te cilen do ta realizonim me SQL sintaksen si meposhte.

Le te emerojme variablen keshtu:
@pp = ‘Pushim pa pagese
use Pushimet
go
Declare @pp varchar(20) = ‘Pushim pa pagese’
UPDATE IT SET LlojiPushimit = @pp WHERE IdPunetori = 6
Pas permiresimit te shenimeve rezultati do te ishte si meposhte:
Select * from IT

Fshirja e shenimeve – DELETE

Gjithashtu per arsye te caktuara, mund te ndodhe qe ndonje kerkese duhet te fshihet nga tabela. Po supozojme qe duhet te fshihet kerkesa e punetorit me ID = 1 ku lloji i pushimit eshte pushim vjetor, atehere kjo do te realizohej me SQL sintaksen vijuese:

use Pushimet
go
Declare @pv varchar(20) = ‘Pushim vjetor’
DELETE FROM IT WHERE IdPunetori = 1 AND LlojiPushimit = @pv
Pas fshirjes se shenimeve rezultati do te ishte si meposhte:
Select * from IT