多年以后,我又开始在 SQL Server 2008 中编写 T-SQL 程序了,结果发现这门语言真的很糟糕:
- 流程控制(所有的 begin/end)感觉很笨重
- 异常处理不好。异常无法像其他语言那样透明地传递。除非自己编码,否则无法重新抛出异常,而且 raiserror 函数的拼写甚至都不正确(这让我头疼了一阵!)
- 字符串处理能力差
- 唯一的序列类型是表格。我不得不编写一个函数来分割基于分隔符的字符串,并将其存储在一个表格中,该表格具有字符串部分以及表示它们在序列中的位置的值。
- 如果您需要在存储过程中进行查找,那么操作结果就会很痛苦。您只能使用游标或通过嵌套查找的 while 循环来解决包含某种排序列的结果。
我意识到可以使用 C# 编写存储过程,但这需要在我的工作场所允许 CLR 函数的权限,这并不是一个选项。
有人知道 SQL Server 中是否有任何 T-SQL 的替代品,或者是否有任何计划引入新的替代品。肯定有更现代的选择...
PS:这不是要引发争论,我真的很想知道有哪些选项。