Вы создали вычисляемый столбец , и он достаточно мощный и полезный!
Выражение может быть любым.Например, вы можете определить:
CREATE TABLE [TableName] (
[ID] INT IDENTITY NOT NULL,
[Name] VARCHAR(50) NOT NULL,
NameLength as (LEN(Name))
);
Это создаст столбец с именем NameLength
, и он всегда будет иметь длину Name
, когда вы ссылаетесь на него - нет update
s, неттриггеры, нет просмотров.Это просто работает.
Вам не нужен тип, потому что SQL Server может это выяснить.
Имеющаяся у вас ошибка может быть даже полезной - если вы действительно хочу обеспечить, чтобы пользователи никогда не использовали select *
.