Generowanie losowych rekordów

Odpowiedz Nowy wątek
2015-02-01 22:40
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

Pozostało 580 znaków

2015-02-02 00:08
0

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


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-02-02 10:08
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


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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