1

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

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

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

5个简单的SELECT语句如下:

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

2 回答 2

3

在性能方面,拥有不同的 SP 是有优势的,因为它可以有不同的执行计划,并且 SQL Server 可以更有效地选择正确的执行计划。

拥有一个过程更易于维护,并且会减少代码..

于 2012-11-15T10:23:57.737 回答
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)

亲在这里:你的表名是动态
的 缺点:你需要在你调用过程的地方定义这个表名。

于 2012-11-15T13:32:18.597 回答