2012-07-30 43 views
1

评估值的持久列是否有可能在Sql Server(2008,R2)中使用由查询其他表的标量函数产生的值构成持久列? 我遇到性能问题,因为我有一个应该评估考虑来自其他表的值的字段。 我逻辑地解决了创建(索引)视图和使用CASE WHEN评估字段的问题,但现在我遇到了大量数据的性能问题。SQL Server从函数

我的想法是评估一个函数中的CASE WHEN,并将它用作主表中的持久列。 这可能吗?视图中的更改是否会触发值的更新?

你能否给我建议替代解决方案(触发器除外)?

感谢

+2

这是不可能的。持久计算列需要确定性,不能依赖其他表中的数据。 – 2012-07-30 09:17:49

+0

感谢您的贡献。 – fra 2012-07-30 09:25:31

回答

1

即使是可能的,但几乎可以肯定是一个坏主意。

触发器是有原因的,这是一个理想的例子。你为什么不想使用它们?

+0

过去,我在更新期间遇到了性能问题。但可能它只是解决问题,所以我会尝试使用触发器。 谢谢 – fra 2012-07-30 09:24:12