【发布时间】:2012-04-09 11:37:02
【问题描述】:
问题就是标题本身。我被要求在 SQL Server 中使用计算列。但是当我在谷歌上搜索它时,我发现它主要用于显示多个列的组合值。如果将其视为永久列,则使用它可能会降低性能。所以我想知道
- 优缺点
- 我们需要在何时何地实施此功能
如果可能的话,请指导我如何解决以下问题(使用计算列。如果不可能,为什么?)。或任何其他方式来实现此要求。 我的要求是使用一个列来识别该表的哪个列已更新。 所以我可以比较这些值并识别变化。
EDIT:下面的表结构。
table structure
ColA int ID (PK) - autonumber.
ColB Nvarchar
ColC Nvarchar
ColD Int
ColE Int
ColF Nvarchar
-- Updatation can happen any one the coloumns other than ColA
提前致谢
【问题讨论】:
-
标题中的问题与您的文本中的不同。似乎您实际上并不想要一般计算列的优缺点列表,而是询问它是否可能/适合您的特定场景? (答案:顺便说一句,这是不可能的,除非我不完全了解您要做什么,否则您将需要一个触发器)
-
@MartinSmith 请查看我更新的问题
-
您可以使用复合 case 表达式(每列一个 case 表达式)来计算表示列更改的位掩码。如果您发布您正在使用的表格的代码示例,我们可以给您更具体的答案。
-
@isme:有什么理由不使用 COLUMNS_UPDATED() 而不是自己滚动? msdn.microsoft.com/en-us/library/ms186329.aspx
标签: asp.net sql-server vb.net sql-server-2008