Mam formularz, w którym użytkownicy mogą określać różne parametry, aby przeglądać niektóre dane (status, data itd.).Zapisana procedura z opcjonalnymi parametrami "WHERE"
mogę produkować kwerendy, która jest:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
itd. Każdy WHERE
jest opcjonalne (mogę zaznaczyć wszystkie wiersze z status = 3
lub wszystkie wiersze z date = 10/10/1980
lub wszystkie wiersze z status = 3 AND date = 10/10/1980
etc.).
Biorąc pod uwagę dużą liczbę parametrów, wszystkie opcjonalne, jaki jest najlepszy sposób utworzenia dynamicznej procedury przechowywanej?
Pracuję na różnych DB, takich jak: MySQL, Oracle i SQLServer.
To nie pozwala, aby wszystkie parametry były opcjonalne. W tym przykładzie @status_id musi zostać przekazany. Nawet jeśli jest pusta, musisz przekazać wartość null, aby to zostało wykonane. – Eppz
Możesz podać domyślną wartość parametrów w MS SQL Server. Nie wiem o MySQL –
Pamiętaj, że w zależności od Twojego RDBMS i tego, jak buforuje plany zapytań, możesz nie uzyskać najlepszej możliwej wydajności dzięki tej metodzie. –