На MSSQL 2000 пытаюсь создать функцию, которая по заданному имени таблицы инкрементировала бы в таблице LastId поле LastId ( извините за совпадение, не от меня зависит) и затем возвращало бы его значение.
Иначе говоря, генератор ключа в виде функции.
CREATE FUNCTION GetId (@TName char(20)) RETURNS char(8)
AS
BEGIN
DECLARE @LastId char (8)
UPDATE dbo.LastID SET dbo.LastID.LastID = dbo.LastID.LastID + 1
WHERE TNAME = @TNAME
SELECT @LastID = RIGHT('00000000' + RTrim(Convert(varchar, LastID)), 8)
FROM LastID WHERE TNAME = @TNAME
RETURN @LastId
END
|
|
Пишет, что Invalid use of 'UPDATE' within a function.
Аналогичная процедура работает, но мне надо именно функцию.
Как можно сделать?
Заранее спасибо, Владимир