Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- /* ლაბორატორიული 12
- ტრიგერები */
- ---- გაუშვით კოდი, რომელიც შექმნის ბაზას firma, ცხრილს anketa და anketa -ს შეავსებს მონაცემებით
- IF EXISTS
- (SELECT name FROM sys.DATABASES
- WHERE name='firma') DROP DATABASE firma
- GO
- CREATE DATABASE firma
- USE firma
- IF OBJECT_ID('anketa','u')IS NOT NULL
- DROP TABLE anketa
- GO
- CREATE TABLE anketa
- (
- id INT NOT NULL,
- saxeli nvarchar(50),
- gvari VARCHAR(50),
- mamis_saxeli VARCHAR(50),
- bankis_angarishi nvarchar(50)
- )
- SELECT * FROM anketa
- INSERT INTO anketa
- VALUES
- (1,'ilia ','managadze','vano','asdf123456'),
- (2,'maia','maisuradze','ilia','khgfgh23456'),
- (3,'elene','maisuradze','ilia','dsdr23456'),
- (4,'tornike','maisuradze','ilia','asdgh28456'),
- (5,'salome','maisuradze','ilia','rtyu13456')
- --- შევსება გაუშვით რამდენჯერმე
- SELECT * FROM anketa
- DELETE FROM anketa WHERE id<=5
- SELECT * FROM anketa
- ALTER TABLE anketa
- ADD CONSTRAINT id PRIMARY KEY(id)
- --- შევსება გაუშვით რამდენჯერმე
- INSERT INTO anketa
- VALUES
- (1,'ilia ','managadze','vano','asdf123456'),
- (2,'maia','maisuradze','ilia','khgfgh23456'),
- (3,'elene','arabidze','ilia','dsdr23456'),
- (4,'tornike','giorgadze','ilia','asdgh28456'),
- (5,'salome','todria','ilia','rtyu13456')
- SELECT * FROM anketa
- UPDATE anketa
- SET mamis_saxeli='daviti'
- WHERE id=3
- DELETE FROM anketa
- WHERE id=5
- SELECT * FROM anketa
- ---after ტრიგერი
- IF OBJECT_ID('myTrigger', 'tr') IS NOT NULL
- DROP TRIGGER myTrigger
- GO
- CREATE TRIGGER myTrigger
- ON anketa
- after INSERT, UPDATE, DELETE
- AS
- print('SORRY MAN! YOU CANT DELETE, UPDATE OR INSERT');
- --raiserror (N'insert,update,delete ოპერაციების ის შესრულება არ შეგიძლიათ', 15, 10);
- ROLLBACK tran -- ukan dabruneba (wina tranzaqciamde)!
- IF OBJECT_ID ('after_shetyobineba', 'TR') IS NOT NULL
- DROP TRIGGER after_shetyobineba;
- GO
- CREATE TRIGGER after_shetyobineba
- ON anketa
- AFTER INSERT, UPDATE,DELETE
- AS RAISERROR (N'insert,update,delete ოპერაციების ის შესრულება არ შეგიძლიათ', 15, 10);
- ROLLBACK TRAN
- GO
- ---- არ შესრულდება შემდეგი ოპერაციები
- INSERT INTO anketa VALUES
- (18,'eka','Telia','ilia','rtyu13456')
- SELECT * FROM anketa
- UPDATE anketa
- SET mamis_saxeli='vladimeri'
- WHERE id=4
- DELETE FROM anketa WHERE id=1
- --- სამივე შემთხვევაში გამოვა შეტყობინება - insert,update,delete ოპერაციების ის შესრულება არ შეგიძლიათ
- ----alter trigger
- ALTER TRIGGER after_shetyobineba
- ON anketa
- AFTER INSERT, UPDATE,DELETE
- AS
- RAISERROR ('nuras ukacravad', 15, 10);
- ROLLBACK TRANSACTION
- GO
- ---after ტრიგერი, disable, enable trigger ---
- disable TRIGGER after_shetyobineba ON anketa
- USE firma
- IF OBJECT_ID ('after_update', 'TR') IS NOT NULL
- DROP TRIGGER after_update;
- GO
- CREATE TRIGGER after_update
- ON anketa
- AFTER UPDATE
- AS
- IF UPDATE(bankis_angarishi)
- BEGIN
- raiserror ('redaqtireba sheuzlebelia',15,100)
- ROLLBACK TRAN
- END
- UPDATE anketa
- SET bankis_angarishi='tttt123654'
- WHERE id=2
- SELECT * FROM anketa
- --- ტრიგერის გათიშვა
- disable TRIGGER after_update ON anketa
- ---განახლება შესრულდება
- UPDATE anketa
- SET bankis_angarishi='123654'
- WHERE id=3
- SELECT * FROM anketa
- --- ტრიგერის გააქტიურება
- enable TRIGGER after_update ON anketa
- ---განახლება კვლავ არ შესრულდება
- UPDATE anketa
- SET bankis_angarishi='kkk123654'
- WHERE id=4
- SELECT * FROM anketa
- ---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ----alter triger
- --- გაუშვით კოდები, რომელიც შექმნის ცხრილს და შეავსებს
- IF object_id('shemosavali' ,'u') IS NOT NULL
- DROP TABLE shemosavali
- GO
- CREATE TABLE shemosavali
- (id INT PRIMARY KEY,
- firma nvarchar(50),
- shemosavali money,
- gasavali money,
- mogeba AS shemosavali-gasavali
- )
- INSERT INTO shemosavali VALUES
- (1,'firma1',4500,2200),
- (2,'firma2',7500,1200),
- (3,'firma3',8500,5200),
- (4,'firma1',4500,1200),
- (5,'firma2',4500,2200),
- (6,'firma2',4200,3200),
- (7,'firma1',4900,1200)
- ----- ტრიგერი ყოველი ახალი ჩანაწერის გაკეტებისთანავე დააბრუნოს მოგებების ჯამი, მაქსიმალური, მინიმალური და საშუალო მოგება
- USE firma
- IF OBJECT_ID('SuperTrigger', 'tr') IS NOT NULL
- DROP TRIGGER SuperTrigger
- GO
- CREATE TRIGGER SuperTrigger
- ON shemosavali
- after INSERT
- AS
- BEGIN
- DECLARE @ss money, @MAX money, @MIN money, @avg money
- SELECT @ss=SUM(mogeba) FROM shemosavali
- SELECT @MAX=MAX(mogeba) FROM shemosavali
- SELECT @MIN=MIN(mogeba) FROM shemosavali
- SELECT @avg=AVG(MOgeba) FROM shemosavali
- SELECT @ss, @MAX, @MIN, @avg
- END
- INSERT INTO shemosavali
- VALUES
- (21,'tbc',100000,2500)
- --- ამოცანა გაუშვით ქვემოთ მოცემული კოდი კრედიტების ცხრილის შექმნისა და შევსების მიზნით. შექმენით ტრიგერი, რომელიც ახალი მონაცემების დამატების, ამოშლის ან განახლების შემთხვევაში გამოიტანს განახლებულ შეტყობინებას იმის თაობაზე თუ რამდენმა სტუდენტმა დაამავრა და რამდენი დაამთავრებს ერთ სემესტრში.
- IF object_id('kreditebi' ,'u') IS NOT NULL
- DROP TABLE kreditebi
- GO
- CREATE TABLE kreditebi
- ( id INT PRIMARY KEY,
- gvari nvarchar(50),
- saxeli nvarchar(50),
- mimarTuleba nvarchar(50),
- sachiro_kreditebi INT,
- mopovebuli_kreditebi INT,
- darchenili_kreditebi AS sachiro_kreditebi-mopovebuli_kreditebi
- )
- SELECT * FROM kreditebi
- INSERT INTO kreditebi
- VALUES
- (1,'sanaia', 'irakli','matematika',240,190),
- (2,'axalaia', 'gia','qimiq',240,230),
- (3,'beridze', 'gela','biologia',240,150),
- (4,'soselia', 'zura','matematika',240,180),
- (5,'arabidze', 'nino','komp.mecniereba',240,240),
- (6,'todua', 'maka','matematika',240,130),
- (7,'sanikidze', 'eka','matematika',240,200),
- (8,'mania', 'gio','komp.mecniereba',240,240),
- (9,'salia', 'daTo','matematika',240,180),
- (10,'todria', 'maka','qimiq',240,200),
- (11,'metreveli', 'elene','komp.mecniereba',240,240),
- (12,'koberidze', 'erekle','qimiq',240,230),
- (13,'mania', 'maia','fizika',240,185),
- (14,'geladze', 'ana','fizika',240,240),
- (15,'sofromadze', 'aleko','qimia',240,90)
- ---- ამოცანის ტრიგერი
- SELECT MAX(id) FROM kreditebi
- ---ჩაწერა
- INSERT INTO kreditebi
- VALUES
- (16,'sanaia', 'ira','matematika',240,220),
- (17,'axalaia', 'mariami','qimiq',240,240)
- INSERT INTO kreditebi
- VALUES
- (18,'sanaia', 'ira','matematika',240,220),
- (19,'axalaia', 'mariami','qimiq',240,240)
- ---ამოშლა
- SELECT * FROM kreditebi
- DELETE FROM kreditebi WHERE id=5
- --- განახლება
- UPDATE kreditebi
- SET mopovebuli_kreditebi=240 WHERE id=1
- ----ცვლადი ცხრილი
- DECLARE @daamtavra TABLE
- ( id INT PRIMARY KEY,
- gvari nvarchar(50),
- saxeli nvarchar(50),
- mimarTuleba nvarchar(50)
- )
- DECLARE @ert_semestrshi TABLE
- ( id INT PRIMARY KEY,
- gvari nvarchar(50),
- saxeli nvarchar(50),
- mimarTuleba nvarchar(50)
- )
- INSERT INTO @daamtavra
- SELECT id,gvari,saxeli,mimarTuleba FROM kreditebi WHERE
- darchenili_kreditebi<=0
- INSERT INTO @ert_semestrshi
- SELECT id,gvari,saxeli,mimarTuleba FROM kreditebi WHERE
- darchenili_kreditebi<=35
- SELECT * FROM @daamtavra
- SELECT * FROM @ert_semestrshi
- SELECT * FROM kreditebi
- ------ trigeri
- SELECT * FROM kreditebi
- SELECT MAX(id) FROM kreditebi
- INSERT INTO kreditebi
- VALUES( 21,'aaa','ddd','mmmm',240,240),
- ( 32,'aaa','ddd','mmmm',240,220)
- INSERT INTO kreditebi
- VALUES( 32,'aaa','ddd','mmmm',240,180),
- ( 33,'aaa','ddd','mmmm',240,22)
- ---- ტრიგერის გამოყენებით აუდიტი
- ----გაუშვით კოდი რომელიც შექმნის ორ ცხრილს
- USE firma
- IF OBJECT_ID ('test','u')IS NOT NULL
- DROP TABLE test
- GO
- CREATE TABLE test
- (
- id INT,
- gvari nvarchar(50),
- saxeli nvarchar(50),
- testirebis_shedegi INT
- )
- IF OBJECT_ID ('test_audit','u')IS NOT NULL
- DROP TABLE test_audit
- GO
- CREATE TABLE test_audit
- (aid INT,
- a_gvari nvarchar(50),
- a_saxeli nvarchar(50),
- a_testirebis_shedegi INT,
- a_qmedea nvarchar(50),
- a_qmedebis_tarigi DATE
- )
- --TRIGGER
- INSERT INTO test VALUES
- (7,'dddd','ssss',12)
- SELECT * FROM test_audit
- SELECT * FROM test
- SELECT a_gvari FROM test_audit
Advertisement
Add Comment
Please, Sign In to add comment