Witam
Tworzę projekt w ms sql i muszę wypełnić losowymi wartościami tabelę faktury. Tu definicja tabeli
create table Faktura(
id_faktury INT PRIMARY KEY IDENTITY(1,1),
id_pracownika INT FOREIGN KEY REFERENCES Pracownik(id_pracownika),
id_klienta INT FOREIGN KEY REFERENCES Klient(id_klienta),
id_uslugi INT FOREIGN KEY REFERENCES Usluga(id_uslugi),
kwota MONEY,
sposob_zaplaty VARCHAR(10) CHECK (sposob_zaplaty in ('gotowka', 'karta'))
);
A tu jest kod generujący losowe rekordy
ALTER PROCEDURE generuj_faktury
AS
BEGIN
DECLARE @id_pracownika INT
DECLARE @id_klienta INT
DECLARE @id_uslugi INT
DECLARE @kwota INT
DECLARE @sposob_zaplaty VARCHAR(10)
SET @id_pracownika = (SELECT TOP 1 id_pracownika FROM Pracownik ORDER BY NEWID())
SET @id_klienta = (SELECT TOP 1 id_klienta FROM Klient ORDER BY NEWID())
SET @id_uslugi = (SELECT TOP 1 id_uslugi FROM Usluga ORDER BY NEWID())
EXEC losowa 1000, 5000, @kwota OUTPUT
IF (@kwota % 2 = 1) SET @sposob_zaplaty = 'gotowka'
ELSE SET @sposob_zaplaty = 'karta'
INSERT INTO Faktura VALUES (@id_pracownika, @id_klienta, @id_uslugi, @kwota, @sposob_zaplaty)
END
GO
EXEC generuj_faktury
GO 10
Kod oczywiście działa, lecz chciałbym spytać, czy jest jakiś szybszy sposób (krótszy, wydajniejszy) na zrobienie tego samego, ponieważ muszę stworzyć takie procedury dla kilkunastu tabel.
Z góry dzięki