如何在SQL Server中使计算列可为空

时间:2012-01-29 07:54:44

标签: sql-server entity-framework calculated-columns

我使用SQL Server 2008和Entity framework 4.1数据库的第一种方法。

有什么方法可以创建null-Computed列?

我无法像这样创作:

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

如果答案为否,那么我有什么方法可以在EF的EDMX文件中制作相应的标量属性Nullable哪个映射到计算列?

1 个答案:

答案 0 :(得分:2)

默认情况下,计算列为nullable,表达式涉及任何其他可为空的列,表达式或任何函数。如果你想要NON-NULL计算列,你应该用ISNULL函数包装列的表达式。

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

在这种情况下,只有当其中一列(FirstName,LastName)也可以为空时,FullName才可以为空

如果您希望可空的计算列由非可空表达式列组成,则使用用户定义函数作为表达式:

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

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