Witam,
mam problem z napisaniem funkcji która jako jeden ze swoich parametrów przyjmuje nazwę funkcji. Baza danych to SQL Server 2008. Kod jaki mam:
ALTER FUNCTION GetLastIdFromTable(@tableName CHAR(50), @columnName CHAR(50))
RETURNS INT
BEGIN
DECLARE @id INT;
SET @id = (SELECT TOP 1 @columnName FROM @tableName ORDER BY IdOsoba DESC);
if(@id IS NULL)
SET @id = 1;
RETURN(@id);
END;
Kod jednak się nie kompiluje. Otrzymuje błąd:
Msg 1087, Level 16, State 1, Procedure GetLastIdFromTable, Line 5
Must declare the table variable "@tableName".
czyli nazwę tabeli jakoś inaczej należy przekazać.
Z góry dziękuje za odpowiedź.