Я пытаюсь INSERT
RETURN
значение для хранимой процедуры, и я просто не могу заставить его работать.
У меня есть одна таблица с именем "person.person_ids"
с полями "id int, uid uniqueidentifier"
и множество других таблиц, называемых, например, "person.employee"
, "person.client"
и т. Д. Все эти таблицы получают свои "id"
s как внешние ключи из таблицы "person.person_ids"
.
процедура делает это:
CREATE PROCEDURE PERSON.NewPerson
AS
BEGIN
DECLARE @ret INT;
INSERT INTO PERSON.ID_PERSON
VALUES (NEWID());
SET @ret = SCOPE_IDENTITY()
RETURN @ret;
END
GO
и мой INSERT
выглядит следующим образом:
INSERT INTO PERSON.EMPLOYEE VALUES
(EXECUTE PERSON.NewPerson, 1, '15434235', '10768348153', '1962-3-2', '1999-10-2', 'PETER', '', 'SMITH', 'HAMMER')
GO
В основном я пытаюсь создать хранимую процедуру функции, которую я могу вызвать для автоматического созданияновая запись в "person.person_ids"
всякий раз, когда я вставляю новую запись в "person.employee"
.
Я пытался использовать OUTPUT
из INSERT
, но я не мог заставить его работать, и INSERT не разрешен внутрифункции.