2012-01-25 10 views
5

tengo la siguiente funciónllamar a funciones definidas por el usuario con la opción Crear Tabla

CREATE FUNCTION GetIdentity() RETURNS INT AS 
BEGIN 
    RETURN (IDENT_CURRENT('tblTempPo')) 
END 
GO 

tengo que llamarlo con crear la tabla

create table tblTempPo 
(
ID int null, 
BrickVolume AS 
       (
       GetIdentity() 
      ) 
) 

estoy recibiendo el error

' GetIdentity 'no es un nombre de función incorporado reconocido.

¿Cómo puedo solucionar esto?

Respuesta

2

es necesario agregar dbo (o cualquiera que sea el nombre de esquema es) para llamar a la función correctamente:

create table tblTempPo 
(
    ID int null, 
    BrickVolume AS(dbo.GetIdentity()) 
) 

Aunque, por su ejemplo de trabajar, que te gustaría hacer algo como esto:

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 

La declaración SELECT se obtendrán los resultados:

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

Debe llamar a la función definida por el usuario con su nombre de esquema, como:

dbo.GetIdentity() 
Cuestiones relacionadas