select * from drzava 
select * from grad
go

-- kreiramo novi pogled koji uključuje nazive država i nazive pripadajućih gradova
create view vDrzavaGrad
as
select d.Naziv as Drzava, g.naziv as Grad
from drzava as d
inner join grad as g
on d.IDDrzava=g.DrzavaID
go

select * from vDrzavaGrad

-- pokušaj upisivanja nove države i novog grada korištenjem pogleda
insert into vDrzavaGrad(drzava,grad)
values
('Australia','Sydney')
go

-- kreiramo okidač koji će umjesto upisa nove države i novog grada samo pokazati podatke specijalne tablice inserted
create trigger t_DrzavaGrad
on vdrzavaGrad
instead of insert
as
select * from inserted

-- pokušaj upisivanja nove države i novog grada korištenjem pogleda
insert into vDrzavaGrad(drzava,grad)
values
('Australia','Sydney')

-- provjera jesu li upisani u tablice
select * from drzava
select * from grad
go

-- mijenjamo okidač na način da odradi upis nove države i novog grada koji je neuspješno pokušan korištenjem pogleda
alter trigger t_DrzavaGrad
on vdrzavaGrad
instead of insert
as
if (select count(*) from inserted)=1
begin
	declare @d nvarchar(50)
	declare @g nvarchar(50)
	declare @idd int

	select @d=drzava from inserted
	select @g=grad from inserted

	insert into drzava(naziv)
	values (@d)
	set @idd=SCOPE_IDENTITY()

	insert into grad(naziv, drzavaid)
	values(@g, @idd)
end
else
	print 'Ako želite upisivati kroz pogled vwDrzavaGrad, upišite u njega samo 1 redak'
go

-- pokušaj upisivanja nove države i novog grada korištenjem pogleda
insert into vDrzavaGrad(drzava,grad)
values
('Rusija','Moskva')
go

-- provjera jesu li upisani u tablice
select * from drzava
select * from grad
