CREATE TABLE dbo.TABLE1
(
F1 varchar(50) NULL,
F2 varchar(50) NULL,
[art] AS (convert(varchar(4),datepart(year,getdate())) + convert(varchar(2),datepart(month,getdate())))) ON [PRIMARY]
(
F1 varchar(50) NULL,
F2 varchar(50) NULL,
[art] AS (convert(varchar(4),datepart(year,getdate())) + convert(varchar(2),datepart(month,getdate())))) ON [PRIMARY]
例如,如果表中含有整型列 a 和 b,则可以在计算列 a+b 上创建索引。但不能在计算列 a+DATEPART(dd, GETDATE()) 上创建索引,因为在以后的调用中,其值可能发生改变。计算列不能作为 INSERT 或 UPDATE 语句的目标。
说明 表中计算列所使用的列值因行而异,因此每行的计算列值可能不同。计算列的为空性是由 SQL Server 根据使用的表达式自动确定的。即使只有不可为空的列,大多数表达式的结果也认为是可为空的,因为可能的下溢或溢出也将生成 NULL 结果。使用 COLUMNPROPERTY 函数(AllowsNull 属性)查看表中任何计算列的为空性。通过指定 ISNULL(check_expression, constant),其中常量为替代任何 NULL 结果的非 NULL 值,可为空的表达式 expr 可以转换为不可为空的表达式。
(
...
art as (convert(varchar(20),getdate(),120))
...
)