Получить вычисленное в столбце значение SQL - PullRequest
2 голосов
/ 15 июня 2011

Моя структура таблицы выглядит следующим образом,

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 ]

4 голосов
/ 15 июня 2011

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

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

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

3 голосов
/ 15 июня 2011

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

SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
1 голос
/ 05 марта 2012
SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...