Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 获取SQL计算列插入值_Sql Server_Calculated Columns_Sql Function_Autogeneratecolumn - Fatal编程技术网

Sql server 获取SQL计算列插入值

Sql server 获取SQL计算列插入值,sql-server,calculated-columns,sql-function,autogeneratecolumn,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 ConvertToBa

我的桌子结构如下:

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中插入查询后,我需要获取生成的[ShortenKey]值。如何执行此操作?

使用


注意:如果我阅读正确,MSDN可能无法处理计算列。

使用
SCOPE\u IDENTITY
获取新的标识值。然后查询新插入的行

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

谢谢你的回复,但是这个错误。。。无法在OUTPUT子句中引用“inserted.ShortenKey”列,因为该列定义包含子查询或引用执行用户或系统数据访问的函数。默认情况下,如果函数不是Schemabile,则假定该函数执行数据访问。考虑从列定义中删除子查询或函数,或者从输出子句中删除列。“将WITH SCHEMABINDING添加到fucntion@gbn我的代码示例返回ShortenKey。我是否遗漏了什么?
SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()
SELECT ShortenKey
FROM dbo.tbl_Info
WHERE SSEID = SCOPE_IDENTITY()