SQL Server 初学者问题:
我正在尝试在 SQL Server (2008) 中引入计算列。在 SQL Server Management Studio 的表设计器中,我可以做到这一点,但设计器只为我提供了一个编辑单元格来定义该列的表达式。由于我的计算列将相当复杂(取决于几个数据库字段和一些案例差异),我希望有一种更舒适和可维护的方式来输入列定义(包括用于格式化的换行符等)。
我已经看到有一个选项可以在 SQL Server 中定义函数(标量值或表值函数)。定义这样一个函数并将这个函数用作列规范可能更好吗?以及什么样的函数(标量值、表值)?
做一个简化的例子:
我有两个数据库列:
DateTime1 (smalldatetime, NULL)
DateTime2 (smalldatetime, NULL)
现在我想定义一个计算列“状态”,它可以有四个可能的值。在虚拟语言中:
if (DateTime1 IS NULL and DateTime2 IS NULL)
set Status = 0
else if (DateTime1 IS NULL and DateTime2 IS NOT NULL)
set Status = 1
else if (DateTime1 IS NOT NULL and DateTime2 IS NULL)
set Status = 2
else
set Status = 3
理想情况下,我希望有一个函数GetStatus()
可以访问我想要计算“状态”值的表行的不同列值,然后只将计算列规范定义为GetStatus()
没有参数。
这有可能吗?或者使用“复杂”计算列定义的最佳方法是什么?
提前感谢您的提示!