Получить вычисленное в столбце значение SQL

Моя структура таблицы, как следует,

CREATE TABLE tbl_Info
(
    [SSEID]         BIGINT              NOT NULL    IDENTITY(1,1),
    [ShortenKey]    AS ConvertToBase([SSEID]),
    [Title]         VARCHAR(500)        NULL,       
)

ConvertToBase Функция как следовать,

CREATE FUNCTION ConvertToBase(@Number BIGINT)
RETURNS VARCHAR(15)
AS 
BEGIN
      // implementation
END

Мне нужно получить сгенерированное значение [ShortenKey] после запроса INSERT в sp. как это сделать?

3 ответа

Решение

Использовать предложение OUTPUT?

INSERT tbl_Info (Title)
OUTPUT INSERTED.ShortenKey
VALUES ('new title')

Примечание: может не работать с вычисляемыми столбцами, говорит MSDN, если я правильно прочитал.

Использование SCOPE_IDENTITY чтобы получить новое значение идентичности. Затем запросите вновь вставленную строку.

SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
Другие вопросы по тегам