تبدو إجراءك المخزني صحيحاً بشكل عام، ولكنه يحتاج إلى تعديل بسيط لتحديد الصف الذي تريد تحديثه بناءً على معرف المستخدم (UserID)، والذي يبدو أنك نسيت إضافته كمعلمة إلى الإجراء.
لتصحيح الإجراء، يمكنك تغيير الجملة update tblUserProfiles
إلى update tblUserProfiles where UserID = @UserID
، حيث يتوقع أن يتم تمرير معرف المستخدم الذي تريد تحديث ملفه إلى الإجراء كمعلمة. بعد التغيير، يجب أن يبدو الإجراء كالتالي:
sqlcreate proc [dbo].[spUserProfile]
@UserID int,
@FirstName nvarchar(50),
@MiddleName nvarchar(50),
@LastName nvarchar(50),
@Mobile nvarchar(50),
@Aadhar nvarchar(50),
@PAN nvarchar(50),
@Address text,
@CityID int,
@PinCode int,
@StateID int,
@CountryID int
AS
Begin
update tblUserProfiles
Set FirstName = @FirstName, MiddleName = @MiddleName, LastName = @LastName,
Mobile = @Mobile, Aadhar = @Aadhar,
PAN = @PAN, Address = @Address, CityID = @CityID,
PinCode = @PinCode, StateID = @StateID, CountryID = @CountryID,
UserID = @UserID
where UserID = @UserID
End
بهذا التعديل، يجب أن يقوم الإجراء بتحديث الصف الذي يحمل نفس معرف المستخدم الذي يتم تمريره كمعلمة، دون تأثير باقي الصفوف في الجدول.
المزيد من المعلومات
إذا كنت تواجه مشكلة في تحديث صف واحد فقط ولكن جميع الصفوف تتغير، فقد تكون المشكلة تكمن في كيفية تمرير واستخدام معرّف المستخدم (UserID). تحقق من الطريقة التي تم بها استدعاء الإجراء المخزن وتأكد من أن قيمة معرّف المستخدم التي تم تمريرها صحيحة وتعود إلى الصف الذي تريد تحديثه.
إذا كنت تقوم بتجربة الإجراء المخزن من خلال بيئة تطويرية مثل SQL Server Management Studio (SSMS)، فقد تحتاج إلى التأكد من تمرير قيمة صحيحة لمعرّف المستخدم (UserID) قبل تنفيذ الإجراء.
بالإضافة إلى ذلك، قد تحتاج إلى التحقق من النمط الذي تقوم به استدعاء الإجراء المخزن في تطبيقك، والتأكد من أنه يقوم بتمرير قيمة معرّف المستخدم الصحيحة.
إذا كانت المشكلة لا تزال مستمرة، يمكنك مشاركة مزيد من التفاصيل حول كيفية استدعاء الإجراء المخزن وما تمريره له، لنتمكن من مساعدتك بشكل أفضل.