Cześć,
mam przykładową funkcję napisaną w SQL Server w stylu:
CREATE FUNCTION nazwa_funkcji (@index int)
RETURNS Decimal(15,2)
AS
BEGIN
RETURN
(
SELECT
Zmienna
FROM
[NazwaBazy].[WDK].[Tabela]
WHERE
Zmienna_2 = @ index
)
END
Mam teraz dwa pytania:
- Czy da się zastąpić nazwę bazy przy podaniu tabeli zmienną zadeklarowaną wcześniej. Np. coś w stylu (przykład nie działa):
CREATE FUNCTION nazwa_funkcji (@index int)
RETURNS Decimal(15,2)
AS
BEGIN
declare @nazwa_bazy varchar(30)
@nazwa_bazy = 'NazwaBazy'
RETURN
(
SELECT
Zmienna
FROM
@nazwa_bazy.[WDK].[Tabela]
WHERE
Zmienna_2 = @ index
)
END
- Czy mógłby mi ktoś pokazać jak powinno wyglądać zbudowanie analogicznej funkcji jak wyżej tylko zaszyfrowanej tak, by żaden administrator nie był wstanie odczytać ciała funkcji? Wiem, że gdzieś trzeba dodać jakiś dodatkowy opcjonalny parametr ale nie wiem jak :(.
Chodzi o to, że chcę mieć kontrolę w której bazie wykorzystywana jest funkcja (musi być pod konkretną bazę - więc nie można pominąć nazwy bazy) oraz nie chcę, by ktoś miał dostęp do zawartości funkcji (jestem jej autorem).
Z góry dziękuję za pomoc!