我想写 5SELECT
个不同类型的语句,但目的相同。
我应该为他们写 5 个单独的存储过程吗?
还是我应该编写一个存储过程并按照CASE
样式转到特定的存储过程?
5个简单的SELECT
语句如下:
SELECT a, b, c FROM table1 WHERE vv = 'ss'
SELECT a, b, c FROM table2 WHERE vv = 'ss'
我想写 5SELECT
个不同类型的语句,但目的相同。
我应该为他们写 5 个单独的存储过程吗?
还是我应该编写一个存储过程并按照CASE
样式转到特定的存储过程?
5个简单的SELECT
语句如下:
SELECT a, b, c FROM table1 WHERE vv = 'ss'
SELECT a, b, c FROM table2 WHERE vv = 'ss'
在性能方面,拥有不同的 SP 是有优势的,因为它可以有不同的执行计划,并且 SQL Server 可以更有效地选择正确的执行计划。
拥有一个过程更易于维护,并且会减少代码..
您还可以使用动态查询编写存储过程,其中您的参数指向正确的表。
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)
亲在这里:你的表名是动态
的 缺点:你需要在你调用过程的地方定义这个表名。