Sql 使用Create Table调用用户定义函数

Sql 使用Create Table调用用户定义函数,sql,sql-server,Sql,Sql Server,我有以下功能 CREATE FUNCTION GetIdentity() RETURNS INT AS BEGIN RETURN (IDENT_CURRENT('tblTempPo')) END GO 我需要用createtable调用它 create table tblTempPo ( ID int null, BrickVolume AS ( GetIdentity() ) ) 我发现了错误 “G

我有以下功能

CREATE FUNCTION GetIdentity() RETURNS INT AS
BEGIN
  RETURN (IDENT_CURRENT('tblTempPo'))
END
GO
我需要用createtable调用它

create table tblTempPo
(
ID int null,
 BrickVolume AS
              (
              GetIdentity() 
              )
)
我发现了错误

“GetIdentity”不是可识别的内置函数名


如何解决此问题?

您需要添加
dbo
(或任何架构名称)以正确调用函数:

create table tblTempPo
(
    ID int null,
    BrickVolume AS(dbo.GetIdentity())
)
不过,为了让您的示例发挥作用,您可能希望执行以下操作:

CREATE TABLE tblTempPo
(
    ID INT IDENTITY(1,1) NOT NULL,
    AnotherField VARCHAR(10),
    BrickVolume AS (dbo.GetIdentity())
)
GO

INSERT INTO tblTempPo VALUES('a')
INSERT INTO tblTempPo VALUES('b')
INSERT INTO tblTempPo VALUES('c')
SELECT * FROM tblTempPo
SELECT
语句将产生以下结果:

ID     AnotherField     BrickVolume
-----------------------------------
 1          a               3
 2          b               3
 3          c               3

您应该使用其架构名称调用用户定义函数,如:

dbo.GetIdentity()