【发布时间】:2015-08-03 13:43:47
【问题描述】:
运行SQL Server 2014。 MSDN 声明标记为PERSISTED 的计算列的值“在其计算中的任何列发生更改时更新”。它们是指表的整列还是实际行?
例如如果我有一个表T 和一个持久计算列Bar,如下所示,如果我在T 中插入一个新行,是否会重新计算Bar? (整个列确实发生了变化,但实际行没有变化。)
CREATE FUNCTION dbo.Baz(@foo INT)
RETURNS INT
WITH SCHEMABINDING
AS
BEGIN
RETURN @foo % 10 -- Could be more complex! E.g. SELECT ...
END
GO
CREATE TABLE T
(
ID INT IDENTITY(1,1) NOT NULL,
Foo INT NOT NULL,
Bar AS dbo.Baz(Foo) PERSISTED
)
GO
【问题讨论】:
标签: sql-server sql-server-2014 calculated-columns