Stored Procedure

Pozdrav!

Imam problem.
Ovo je moja procedura:

------ PROCEDURA ------
GO
CREATE PROCEDURE Procedura
AS
BEGIN
SELECT * INTO Tablica3
FROM Tablica1
WHERE NOT EXISTS (SELECT Tablica2.broj
FROM Tablica2
WHERE Tablica2.broj = Tablica1.broj);
DELETE
FROM Tablica1
WHERE EXISTS (SELECT Tablica3.broj
FROM Tablica3
WHERE Tablica3.broj = Tablica1.broj);
END
GO

SELECT * FROM Tablica3;
SELECT * FROM Tablica1;
DROP PROCEDURE Procedura;

Dakle, kad ju pokrenem piše da je uspješno, no kad napravim SELECT Tablica 3 ne postoji, a u Tablici1 sve je ostalo isto. Gdje griješim?

hvala!

Da bi se izvršilo ono što piše u proceduri, treba je izvršiti.
Koliko vidim, ti KREIRAŠ procku, ali je ne izvršavaš.

Znači, probaj ovo:

EXEC Procedura;
SELECT * FROM Tablica3;
SELECT * FROM Tablica1;

HINT: Procedure su stalni objekti baze i ne vidim razloga da se procka dropa nakon izvršavanja

1 Like

Savršeno! :slight_smile: Hvala!!! :slight_smile:

Znam…znam… ali dropam ju kako bih isprobavala! :wink:

NE bi trebalo biti:

SELECT * FROM Tablica3

Edit: moja greska. Provjeravam opet. Dotad slusaj @trnac :smiley:

ne, ne…baš trebamo stvoriti novu tablicu pomoću podataka iz stare…

Editovano.

insert into nova_tablica
select * from stara_tablice

kolone moraju biti iste u jednoj i drugoj tablici.

ili koristiš cursor i loop petlju.

select * into nesto from tablica

nesto je varijabla koja prima jednu vrijednost.

znači u proceduri
select kolona1, kolona2 into varijabla1, varijabla2 from tablica where nešto

i ovaj select mora vratiti samo jedan slog.