2012-01-29 61 views
2

我使用SQL Server 2008和Entity Framework 4.1數據庫第一種方法。如何在SQL Server中使計算列可以爲空

有沒有什麼辦法可以創建無效的計算列?

我不能創造這樣的:

Alter Table Employee Add FullName nullable as LastName + ' ' +FirstName 

如果答案是否定的,那麼有沒有什麼辦法可以使EF的適當的標量屬性Nullable在EDMX文件,該文件映射到計算列?

回答

2

計算列的默認空值是表達式涉及任何其他可爲空的列,表達式或任何函數。如果您想要NON-NULL計算列,則應該使用ISNULL函數來包裝列的表達式。

Alter Table Employee Add FullName as LastName + ' ' +FirstName 

在這種情況下全名會爲空的只有一列(名字,姓氏)將可爲空太

如果你想爲空的計算列由WITN非空的表達式列,然後使用用戶定義函數爲表達式:

CREATE FUNCTION dbo.FullName(@LastName nvarchar(100), @FirstName nvarchar(100)) 
RETURNS nvarchar(201) 
AS 
BEGIN 
    RETURN @LastName + N' ' [email protected] 
END 
GO 

Alter Table Employee Add FullName as dbo.FullName(LastName, FirstName) 
+0

幹得好!這幫助了我...... :) – 2012-10-01 17:23:03