问题
My Table Structure as follow,
CREATE TABLE tbl_Info
(
[SSEID] BIGINT NOT NULL IDENTITY(1,1),
[ShortenKey] AS ConvertToBase([SSEID]),
[Title] VARCHAR(500) NULL,
)
ConvertToBase
Function as Follow,
CREATE FUNCTION ConvertToBase(@Number BIGINT)
RETURNS VARCHAR(15)
AS
BEGIN
// implementation
END
I need to get the generated [ShortenKey] value after INSERT query in sp. how to do this ?
回答1:
Use the OUTPUT clause?
INSERT tbl_Info (Title)
OUTPUT INSERTED.ShortenKey
VALUES ('new title')
Note: may not work with computed columns says MSDN, if I read it correctly.
回答2:
Use SCOPE_IDENTITY
to get the new identity value. Then query the newly inserted row.
SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
回答3:
SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
来源:https://stackoverflow.com/questions/6354894/get-sql-computed-column-inserted-value