Tod*_*nce 1 sql stored-procedures
因此,我们被告知存储过程已优化,我们绝不应该将sql语句放入代码中。
但是我不想为我需要的每种查询或数据库操作类型制作10,000个存储过程。
因此,我已经开始执行以下操作(将所有功能放入一个sproc中):
CREATE PROCEDURE [dbo].[spTABLENAME]
@Function nvarchar = null,
@ID int = null,
@MoreVariables int = null
AS
BEGIN
SET NOCOUNT ON;
IF @Function = 'UPDATE'
BEGIN
UPDATE UPDATESTUFF WHERE ID = @ID;
END
ELSE IF @Function = 'INSERT'
BEGIN
INSERT INTO TABLENAME (STUFF)
END
ELSE IF @Function = 'SELECT'
BEGIN
SELECT * FROM TABLENAME WHERE ID= @ID
END
ELSE IF @Function = 'DELETE'
BEGIN
DELETE * FROM TABLENAME WHERE ID = @ID
END
Run Code Online (Sandbox Code Playgroud)
结束
有人可以告诉我这种做法是否有误?
使用单个“ UPSERT”过程是相当普遍的,但是也有可能返回数据的过程对我来说并不适合。
要记住的另一件事是,如果您使用单独的存储过程,则可以从缓存计划中获得一些额外的好处,而使用多合一例程可能无法从中受益。
| 归档时间: |
|
| 查看次数: |
2083 次 |
| 最近记录: |