在单个存储过程中编写整个查询

时间:2015-04-10 11:09:14

标签: .net sql-server stored-procedures

我有一个用.NET开发的应用程序和SQL Server 2008中的存储过程查询,.NET Framework 4.0。

在存储过程中,我有两组:

  1. 每个存储过程只包含表中的一个查询

  2. 存储过程包含与该表相关的整个查询

  3. 示例:

    IF @Type = 'Select'
       'query'
    
    IF @Type = 'Search'
       ''query
    

    由于我已经开发了应用程序并使用了这两个集合,我对于为表格(第2集)编写整个查询是否是一个好习惯感到困惑?

    这有什么好处,或者是一个不好的编码习惯(即在单个存储过程中编写多个查询)

    请建议我选择。

    谢谢

2 个答案:

答案 0 :(得分:2)

如果在单个存储过程中保留与某个表相关的所有查询(INSERT / UPDATE / DELETE和SELECT),我可以想到这种方法存在的几个问题:

首先,安全。授予某个EXEC程序,您可能会授予他不必要的权利。

其次,编译时间随着内部代码的增加而增加。

第三,通过网络定义和发送更多参数。

第四,程序的输出没有明确定义。

第五,服务。

第六,不要这样做:)

希望它有所帮助。

答案 1 :(得分:1)

我想有些人会不同意我,但在我看来这是不好的做法。编写简短的自解释代码总是更好,这些代码分为大量函数(在这种情况下是存储过程)然后编写一个长代码,其中有很多部分实际上并不属于。

总是想一想如何让这个可怜的混蛋变得容易,这个混蛋必须使用你现在写的18个月的代码,因为你很可能会成为那个可怜的混蛋。