Каков синтаксис для UDF, который вставляется в таблицу только с полем идентификации PK? - PullRequest
0 голосов
/ 10 марта 2011

Я получаю ошибки при попытке сделать 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

1 Ответ

0 голосов
/ 10 марта 2011

UDF не может изменить состояние базы данных.То есть он не может записывать в таблицы.

Читали ли вы ответы на свой предыдущий вопрос?Кто-нибудь предположил, что это хорошая идея?Надоело или ТАК и на DBA.SE?

...