USE AdventureWorksOBP

create or alter proc pDrzave
as 
select * from Drzava

exec pDrzave

drop proc pDrzave

--2.procedure sa ulaznim parametrima
create proc pProizvod
@idp int as
select * from Proizvod 
where IDProizvod = @idp

exec pProizvod 420 -- izvrsit ce ako unesemo vrijednost, ovdje sm uveli 420
exec pProizvod @idp = 420

drop proc pProizvod

--3.procedura sa output parametrima
create proc pProizvodBoja 
@idp int,
@boja nvarchar (15) output as
select @boja = p.Boja from Proizvod as p
where p.IDProizvod = @idp

declare @farba nvarchar(15)
exec pProizvodBoja 420, @farba output 
-- ili 
exec pProizvodBoja @idp = 420, @boja = @farba output
print @farba

--4. procedura sa return kodom
select * from Kupac

create proc pOsobe
@ido int as

if exists (select * from kupac where IDKupac = @ido)
	begin 
		return 0
	end
else
	begin
		return 2
	end

declare @retVal int
exec @retVal = pOsobe 1 --gdje ce se pohraniti
print @retVal


--Procedure bez parametara

select * from Racun
select * from Stavka
select * from Proizvod

create or alter proc pRacun
as
select Top 5 * from Racun
select Top 5 * from Stavka
select Top 5 * from Proizvod
exec pRacun
--drop proc pRacun

--6 zad. moguce biti na ispitu
create or alter proc pDrzava
@Drzava nvarchar (50)
@Grad nvarchar (50)
as
declare @IDDrzava int
select @IDDrzava = IDDrzava  as Drzava from drzava 
where Naziv = @Drzava

if @IDDrzava is not null
begin
insert into Grad (Naziv,DrzavaID) values (@Grad, @IDDrzava)
end

else 
begin
insert into Drzava (Naziv) values (@Drzava)
set @IDDrzava = SCOPE_IDENTITY
insert into Grad (Naziv,DrzavaID) values (@Grad, @IDDrzava)
end

exec pDrzava


--zad 9 (8-10 mogu biti na ispitu)
 create or alter proc pKategorija
@Kategorija nvarchar (50),
@ID int output
as
if not exists (select * from Kategorija where naziv = @Kategorija)
begin
	insert into Kategorija values (@Kategorija)
	SET @ID = SCOPE_IDENTITY
end
else
begin
set @id = 1
set
end

exec pKategorija


--declare @IDKategorija int
--select @IDKategorija = IDKategorija  as Kategorija 
--from Kategorija
--where Naziv = @Naziv