Znaci, imam jedan INSERT u tabelu 'Kompanija' i nekoliko (1 ili vise) INSERT-a u tabelu 'Telefoni'. Kazem, htio bih da to uradim iz jedne uskladistene procedure (jasno, da bude jedna transakcija), ali ono sto ja ne znam je: kako da u uskladistenoj proceduri odradim , da tako kazem, FOR petlju koja ce odraditi upis(e) u tabelu Telefoni? Da li je moguce napisati for petlju unutar uskladistene procedure (a da proceduri proslijedim, kao parametar, brojac FOR petlje)?
Da generalizujem: kako realizovati upis u bazu, u scenariju 'ONE-2-MANY', iz jedne uskladistene procedure?
ALTER PROCEDURE dbo.NovaKompanija
(
@par1 nvarchar(128),
@par2 bigint,
@par3 datetime,
@...,
@brojac int )
AS
BEGIN TRANSACTION
INSERT INTO dbo.Kompanije (par1, par2, par3, ...)
VALUES (@par1, @par2, @par3)
IF @@ERROR <>0
BEGIN
ROLLBACK
RAISERROR ('Greska prilikom upisa u tabelu Kompanija !', 16, 1)
RETURN
END
// DA LI JE MOGUCE OVAKO NESTO ?
FOR (i=0;i<@brojac;i++) // NE ZNAM DA LI POSTOJI OVAKVA SQL SINTAKSA???
INSERT INTO dbo.Telefon (IDKompanije, x, y)
SELECT IDENT_CURRENT ('dbo.Kompanije'), @x, @y
IF @@ERROR <> 0
BEGIN
ROLLBACK
RAISERROR ('Greska prilikom upisa u tabelu Telefoni !', 16, 1)
RETURN
END
// OVO BI BIO KRAJ FOR petlje
COMMIT
RETURN
Hvala na pomoci ...