Получить вычисленное в столбце значение 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()