获取SQL计算列插入值

时间:2011-06-15 08:18:04

标签: sql-server calculated-columns sql-function autogeneratecolumn

我的表结构如下,

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

我需要在sp中进行INSERT查询后获取生成的[ShortenKey]值。怎么做?

3 个答案:

答案 0 :(得分:4)

使用OUTPUT clause

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

注意:如果我正确读取它,可能无法使用MSDN计算列。

答案 1 :(得分:3)

使用SCOPE_IDENTITY获取新的身份值。然后查询新插入的行。

SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()

答案 2 :(得分:1)

SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
相关问题