有没有办法在SQL Server 2008中创建查询特定的功能?

时间:2011-12-21 00:23:33

标签: sql-server-2008-r2

为了坚持Dry Principle我有一些代码,我觉得可以轻松地生活在一个函数中。我可能需要在将来的某个时候重用此代码,我可能不会。理想情况下,我将拥有一个仅存在于这段代码中的函数,因为它对整个数据库没有任何好处,并且在尝试查找有意义且全局有用的函数时,生活在任何现有方案中都会产生噪音。

我曾尝试编写一个脚本,该脚本使用典型语法在我的其他代码之前创建一个函数,并将函数放在代码的末尾。这不太理想,因为未来可能会发生碰撞,但风险可以接受。不幸的是我收到了一个错误:

'CREATE FUNCTION' must be the first statement in a query batch. 

不幸的是,在语句之前和之后添加分号并不是一个快速修复。有没有办法快速使用函数而不将它们构建到数据库的框架中?

或者我问错了问题。在一个脚本中有没有办法强制分批?

1 个答案:

答案 0 :(得分:2)

如果你真的在运行“批处理”(例如在Query analyzer或ossql中运行一组T-SQL命令),那么只需使用“go”。如果它是“go”之后的第一行,你的“创建函数”应该有效 - 再次,这取决于你的T-SQL解释器。 OSSQL:应该工作。在VB6程序中的ADO连接:绝对不会工作。