Prosedur atau Fungsi Mempunyai Terlalu Banyak Argumen Ditentukan
Apabila menghadapi mesej ralat ini, ia menunjukkan bahawa bilangan argumen yang berlebihan telah disediakan semasa pemanggilan prosedur atau fungsi tersimpan. Mengenal pasti punca ralat boleh menjadi penting untuk menyelesaikan isu.
Mengenal pasti Sumber Ralat
Dalam senario yang diberikan, ralat berlaku semasa memanggil yang disimpan prosedur [dbo].[M_UPDATES], yang seterusnya menggunakan prosedur tersimpan lain, [etl_M_Update_Promo]. Setelah diperiksa, terbukti bahawa [dbo].[M_UPDATES] cuba memanggil [etl_M_Update_Promo] dengan dua parameter, manakala pengisytiharan [etl_M_Update_Promo] hanya menetapkan satu parameter.
Kod untuk [dbo].[M_KEMASKINI]
EXEC etl.etl_M_Update_Promo @GenID, @Description
Kod untuk [etl_M_Update_Promo]
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0 as
Seperti yang anda lihat, [etl_M_Update_Promo] diisytiharkan kepada ambil hanya parameter @GenId, mengakibatkan ralat mesej.
Resolusi
Untuk menyelesaikan isu ini, adalah perlu untuk mengubah suai pengisytiharan [etl_M_Update_Promo] untuk memasukkan parameter tambahan, @Description. Dengan berbuat demikian, fungsi akan dapat menampung dua parameter yang disediakan oleh [dbo].[M_UPDATES].
Kod Kemas Kini untuk [etl_M_Update_Promo]
ALTER PROCEDURE [etl].[etl_M_Update_Promo] @GenId bigint = 0, @Description NVARCHAR(50) AS
Selepas mengemas kini perisytiharan, ralat harus diselesaikan, membenarkan prosedur berfungsi sebagai dimaksudkan.
Atas ialah kandungan terperinci Mengapa Prosedur Tersimpan Saya Mendapat Ralat 'Terlalu Banyak Argumen'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!