したがって、ストアドプロシージャは最適化されており、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
終わり
この方法で何か間違ったことがあるかどうか誰かに教えてもらえますか?