是否有Transact-SQL的替代品

Sea*_*ean 11 t-sql sql-server

这是我多年来第一次在SQL Server 2008中进行一些T-SQL编程,并忘记了语言的真正含义:

  • 流量控制(所有开始/结束的东西)感觉笨重
  • 异常处理很差.例外不会像其他语言一样冒泡.没有重新投掷,除非你自己编码并且raiserror函数甚至拼写不正确(这让我有些头疼!)
  • 字符串处理很差
  • 唯一的序列类型是表.我必须编写一个函数来根据分隔符拆分字符串,并且必须将它存储在一个表中,该表中包含字符串部分以及指示序列中位置的值.
  • 如果你需要在存储过程中进行查找,那么操作结果是很痛苦的.如果结果包含某种排序列,您必须使用游标或使用嵌套查找将while循环一起破解

我意识到我可以使用C#编写我的存储过程,但是这需要允许服务器允许CLR功能,这在我的工作场所不是一个选项.

有没有人知道SQL Server中是否有任何替代T-SQL的方法,或者是否有任何计划引入的东西.当然,必须有一个更现代的替代方案......

PS:这不是为了开始一场火焰战,我真的对选项的兴趣感兴趣.

Mit*_*eat 8

T-SQL没有任何问题; 它完成了预期的工作(除了可能添加控制流结构,但我离题!).

也许看看LINQ?您可以编写CLR存储过程,但我不建议这样做,除非它是针对某些缺少的功能(或重字符串处理).

  • @Sean:T-SQL是一种基于集合的SQL编程语言 - 它可以很好地完成这项工作.T-SQL不是一种程序性语言 - 它处理的结构不太好,但这并不是它的首要目的. (3认同)
  • 我同意Mitch和Marc的观点.TSQL在基于集合的操作方面非常出色.一旦你知道如何正确使用它可以是一个非常强大的工具.也许如果Sean在程序中有太多的控制流程,那么数据库层中的业务逻辑就太多了......摆脱流量控制,你就摆脱了所有问题. (3认同)