Cześć,
chciałem się zapytać w jaki sposób testować pisane funkcje serwerowe? Czy da się sprawdzić wynik ciała funkcji przed jej utworzeniem? Chodzi o to, że jestem początkującym i popełniam wiele błędów a nie chcę za każdym razem tworzyć i usuwać funkcji. Zanim utworzę funkcję chciałbym sprawdzić czy ona będzie zwracać prawidłową wartość... Funkcje przeważnie składają się z wielu instrukcji, dlatego mam problem, by zobaczyć kompleksowo jak działa ten kod...
Z góry dzięki za pomoc.
Tworzenie funkcji serwerowych - testowanie/zmiana
- Rejestracja: dni
- Ostatnio: dni
- Postów: 41
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
eee, po co za każdym razem usuwać? Przecież możesz napisać CREATE OR REPLACE FUNCTION ... i "stara" po prostu zostanie nadpisana przez nową. Np. SQL Lite Manager for SQL Server pozwala na debugowanie procedur składowanych (jednak trzeba do tego odpowiednio serwer skonfigurować)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 41
@abrakadaber Dzięki wielkie - nie wiedziałem, że jest taka możliwość! :) Zaraz to będę testował :)
Rozumiem, że najpierw mam zrobić:
create function nazwa_funkcji ...
a następnie za każdym razem już tylko replace funkcion nazwa_funkcji...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
nie - możesz od razu pisać create or replace function nazwa_funkcji - jak jej nie ma to zostanie utworzona a jak jest to zostanie zastąpiona. Nie wiem tylko jak zachowa się jeśli zmienisz listę lub typy paramterów
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1084
abrakadaber napisał(a):
nie - możesz od razu pisać
create or replace function nazwa_funkcji
Taaa... problem polega na tym, że w MSSQL nie istnieje taka konstrukcja jak create or replace. To po prostu nie zadziała i koniec.
Dwa - EMS SQL Lite NA PEWNO nie pozwala na debug procedur składowanych ani niczego innego:
http://www.sqlmanager.net/en/products/mssql/manager/matrix
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
wloochacz napisał(a):
abrakadaber napisał(a):
nie - możesz od razu pisać
create or replace function nazwa_funkcjiTaaa... problem polega na tym, że w MSSQL nie istnieje taka konstrukcja jak
create or replace. To po prostu nie zadziała i koniec.
byłem pewny, że coś takiego jest - Oracle, Postgres i FB mają (przy FB to się nazywa CREATE OR ALTER), a to z nimi na co dzień pracuję. Zamiast tego można użyć http://stackoverflow.com/questions/13866004/create-stored-procedure-if-doesnt-exist-in-sql-server
Dwa - EMS SQL Lite NA PEWNO nie pozwala na debug procedur składowanych ani niczego innego:
http://www.sqlmanager.net/en/products/mssql/manager/matrix
hmm, mam zainstalowaną wersję lite i mam tą opcję dostępną
![SQL Manager Lite for SQL Server - [Procedure - [dbo.Export]].png](http://static.4programmers.net/uploads/attachment/40049026857b1ffc6d9b92.png)