2012-01-29 2 views
2

Я использую первый подход базы данных SQL Server 2008 и Entity framework 4.1.Как сделать вычисляемый столбец нулевым в SQL Server

Есть ли способ создать нулевой вычислительный столбец?

Я не могу создать так:

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

Если ответ НЕТ, то Есть ли способ, которым я мог бы сделать соответствующий Скалярное Property Nullable в EDMX Файл EF, отображающих в колонке Компьютерной?

ответ

2

Вычисляемые столбцы по умолчанию являются обнуляемыми, это выражение включает любой другой нулевой столбец, выражение или любую функцию. Если вы хотите вычислять столбцы NON-NULL, вы должны обернуть выражение столбца функцией ISNULL.

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

В этом случае FullName будет обнуляемым только если один из столбцов (FirstName, LastName) будет обнуляемой слишком

Если вы хотите NULLABLE вычисляемого столбца состоит WITN в ненулевых выражениях столбцов, а затем использовать User Определенная функция как выражение:

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

Молодцы! Это помогло мне ... :) –