我想编写5个SELECT
不同类型的语句,但目的相同。
我应该为它们编写5个单独的存储过程吗?
或者我应该编写一个存储过程并按照CASE
样式转到特定的存储过程吗?
5个简单SELECT
语句如下:
SELECT a, b, c FROM table1 WHERE vv = 'ss'
SELECT a, b, c FROM table2 WHERE vv = 'ss'
答案 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:需要在调用过程的地方定义此表名。