Generowanie losowych rekordów

0

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

0

Ja to robię z poziomu aplikacji korzystając z biblioteki AutoFixture.

0

np http://www.generatedata.com/
i jak zwykle coś co ciężko jest znaleźć czyli https://www.google.pl/search?q=database+test+data+generator

1 użytkowników online, w tym zalogowanych: 0, gości: 1