我正在写一个相当长的SQL脚本,它运行了近2000行代码。由于很难理解一个很长的脚本,所以我想把它分成几个逻辑单元,并在其他SQL文件中将它们分开。
做这件事的最好方法是什么?每个逻辑单元都需要是一个存储过程吗?也许是UDF?
发布于 2009-06-02 20:51:04
利用存储过程和函数。如果您使用的是纯SQL,那么没有比这更适合放置代码逻辑单元的地方了。此外,它还使维护/编辑代码变得更加容易。
也就是说,如果你的脚本那么长,你可能想看看你在做什么,并考虑另一种脚本语言,甚至是C#/LINQ。有时将所有内容都放在SQL中是有意义的,有时您会将某些内容强制放入SQL中,但只有您才能做出决定。
此外,C#或其他脚本语言很容易与源代码控制集成。只是一些需要思考的事情!
发布于 2009-06-02 20:53:26
首先,在一个文件中包含2000行SQL并不是一个过多的量(对于一个不太大的数据库,DDL通常会运行这个或更多行)。然而,在一个单独的过程中拥有太多了!解决这一问题的方法确实是将逻辑组件分解为单独的过程。除非您有特定的瓶颈需要克服,或者在SQL中不易完成的操作,否则您将不需要UDF。
最后一条建议:考虑通过视图简化数据访问。
顺便说一句:你想用这么大的进程来完成什么?我使用T-SQL做了大量的工作,我从来没有接近过2000行代码!
发布于 2009-06-02 20:53:45
如果您使用UDF,请确保您了解标量和内联UDF之间的区别:
http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/05/23/reuse-your-code-with-cross-apply.aspx
https://stackoverflow.com/questions/941830
复制相似问题