2012-01-25 22 views
5

tôi có chức năng sauCalling người dùng định nghĩa với Tạo Bảng

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

tôi cần phải gọi nó với tạo bảng

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

Tôi nhận được lỗi

' GetIdentity 'không phải là tên hàm được xây dựng sẵn.

Tôi làm cách nào để giải quyết vấn đề này?

Trả lời

2

Bạn cần phải thêm dbo (hoặc bất kỳ tên schema là) đúng gọi hàm:

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

Mặc dù, ví dụ bạn để làm việc, bạn muốn làm điều gì đó như thế này:

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 

tuyên bố SELECT sẽ mang lại kết quả:

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

Bạn nên gọi hàm do người dùng xác định với tên lược đồ của nó, như:

dbo.GetIdentity() 
Các vấn đề liên quan