Как сделать вычисляемый столбец обнуляемым в SQL Server - PullRequest
2 голосов
/ 29 января 2012

Сначала я использую базу данных SQL Server 2008 и Entity Framework 4.1.

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

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

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

Если ответ НЕТ, то есть ли способ сделать соответствующее скалярное свойство Nullable в файле EDMX EF, которыйсопоставить с вычисляемым столбцом?

1 Ответ

2 голосов
/ 29 января 2012

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

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

В этом случае FullName будет иметь значение NULL, только если один из столбцов (FirstName, LastName) также будет иметь значение NULL.

Если вы хотите, чтобы вычисляемый столбец, который можно обнулять, состоял из столбцов с ненулевым выражением, то используйте функцию User Defined в качестве выражения:

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)
...