Я получаю ошибки при попытке сделать UDF для обертывания логики генерации первичных ключей для использования в некоторых процессах, выполняющих вставки в таблицы БД.
У меня есть следующая таблица pk для генерации значений для использования всохраненные данные:
CREATE TABLE [dbo].[PK](
[Id] [bigint] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_PK] PRIMARY KEY CLUSTERED
(
[Id] ASC
)
)
мой UDF такой:
alter FUNCTION [getPK] ( )
RETURNS int
AS
BEGIN
declare @Output int
INSERT INTO pk default values
SET @Output = (SELECT SCOPE_IDENTITY())
RETURN @Output
END
Я пытаюсь инкапсулировать следующую логику для использования в нескольких местах в моей БД:
INSERT INTO pk default values
SELECT SCOPE_IDENTITY() --to get a new ID