Tworzę funkcję do wykonywania dynamicznego SQL i zwracania wartości. Otrzymuję "Tylko funkcje i niektóre rozszerzone procedury przechowywane mogą być wykonywane z poziomu funkcji." jako błąd.Wystąpił błąd podczas wykonywania dynamicznego sql w funkcji (SQL Server)?
Funkcja:
Create Function fn_GetPrePopValue(@paramterValue nvarchar(100))
returns int as
begin
declare @value nvarchar(500);
Set @SQLString = 'Select Grant_Nr From Grant_Master where grant_id=' + @paramterValue
exec sp_executesql
@query = @SQLString,
@value = @value output
return @value
end
Wykonanie:
Select dbo.fn_GetPrePopValue('10002618') from Questions Where QuestionID=114
oraz:
Select fn_GetPrePopValue('10002618') from Questions Where QuestionID=114
Czy funkcja miano prawidłowo lub jest funkcja błędne?
Dziękuję Alexandria, bardzo wdzięczna !!!!!!! – Chaka
BTW, aby zapobiec iniekcji SQL użyj sp_executesql z parametrami –