哪种存储过程编写风格更好?

时间:2012-11-15 10:18:30

标签: sql-server sql-server-2008 stored-procedures

我想编写5个SELECT不同类型的语句,但目的相同。

我应该为它们编写5个单独的存储过程吗?

或者我应该编写一个存储过程并按照CASE样式转到特定的存储过程吗?

5个简单SELECT语句如下:

SELECT a, b, c FROM table1 WHERE vv = 'ss'
SELECT a, b, c FROM table2 WHERE vv = 'ss'

2 个答案:

答案 0 :(得分:3)

性能方面,有不同SP的优势,因为它可以有不同的执行计划,SQL服务器可以更有效地获取正确的执行计划。

让一个程序更易于维护并减少代码..

答案 1 :(得分:0)

您还可以使用动态查询编写存储过程,其中参数指向正确的表。

Create proc test (@table varchar(50))
AS
BEGIN
DECLARE @str varchar (MAX)
SET @str = 'SELECT a, b, c FROM ' + @table + ' WHERE vv = ''ss'''
EXEC(@str)

Pro在这里:你的表名是动态的 con:需要在调用过程的地方定义此表名。