Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 哪种存储过程编写方式更好?_Sql Server_Sql Server 2008_Stored Procedures - Fatal编程技术网

Sql server 哪种存储过程编写方式更好?

Sql server 哪种存储过程编写方式更好?,sql-server,sql-server-2008,stored-procedures,Sql Server,Sql Server 2008,Stored Procedures,我想写5条不同类型的SELECT语句,但目的相同 我应该为它们编写5个单独的存储过程吗 或者我应该编写一个存储过程,然后按照大小写样式转到特定的存储过程吗 5条简单的SELECT语句如下: SELECT a, b, c FROM table1 WHERE vv = 'ss' SELECT a, b, c FROM table2 WHERE vv = 'ss' 就性能而言,拥有不同的SP具有优势,因为它可以有不同的执行计划,SQL server可以更高效地选择正确的执行计划 拥有一个过程更易于维

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

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

或者我应该编写一个存储过程,然后按照
大小写
样式转到特定的存储过程吗

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)
Pro在这里:您的表名是动态的

con's:你需要在调用过程的地方定义这个表名。

你能解释一下这5个不同的
SELECT
语句应该做什么吗?到目前为止,您列出的信息并不多。@SchmitzIT.请查看编辑可能是我不清楚..但如果表不同,则意味着表结构也会不同。。