الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكله عمل insert في جدولين بنفس الوقت

مغلق
بدأه charming girl في 28 مايو 2007 · 2 رد · 562 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

في البدايه انا مبتدئه في السيكول وعندي سؤال

يوجد عندي جدولين مرتبطين مع بعضهما والجدول الاول بوجد فيه حقل يوجد فيه ترقيم تلقائي وانا اريد ادراج جميع الحقول في الجدولين بنفس الوقت مع ملاحضة عند ادراج سجل في الجدول الاول اجد في الجدول الثاني نفس الرقم التلقائي في الجول الاول

وانا كتبت هذ الكود وما ادري صحيح او لا


@ClientNo dt_num,
@Realestatetype dt_spcification,
@Realestatelifetime dt_spcification,
@City dt_spcification,
@Location dt_spcification,
@Neighborhood dt_spcification,
@Northernfacade bit,
@Southernfacade bit,
@Westernfacade bit,
@Easternfacade bit,
@Area dt_spcification,
@Realestatecondition dt_spcification,
@Realstateactivity dt_spcification,
@Price money,
@Realestatephoto image,
@Others dt_other,
@roomsno dt_num,
@kitchensno dt_num,
@bathroomsno dt_num,
@floorno dt_num
as
if @ClientNo is null or @Realestatetype is null or @Realestatelifetime is null or @City is null or @Location is null or @Neighborhood is null or @Area is null or @Price is null or @roomsno is null or @kitchensno is null or @bathroomsno is null or @floorno is null
begin
Raiserror ('ادخل جميع بيانات الحقول',16,1)
return
end

begin tran
INSERT [Real estate] (ClientNo,Realestatetype,Realestatelifetime,City,Location,Neighborhood,Northernfacade,Southernfacade,Westernfacade,Easternfacade,Area,Realestatecondition,Realstateactivity,Price,Realestatephoto,Others)
VALUES(@ClientNo,@Realestatetype,@Realestatelifetime,@City,@Location,@Neighborhood,@Northernfacade,@Southernfacade,@Westernfacade,@Easternfacade,@Area,@Realestatecondition,@Realstateactivity,@Price,@Realestatephoto,@Others)
if @@error <> 0
begin
rollback
return
end

INSERT Apartment(roomsno,kitchensno,bathroomsno,floorno)
VALUES (@roomsno,@kitchensno,@bathroomsno,@floorno)
if @@error <>0
begin
rollback return
end
alter  proc  insRealestate

#2

بسبب وجود ترابط بين الجدولين لذلك لا يجب ان يكون الجدول الثاني من نوع الترقيم التلقائي autonumber بل يجب ان يكون من نوع Int

ويجب تعديل مايلي قبل جملة الادخال الى الجدول الثاني

declare @id int
select @id = SCOPE_IDENTITY()

INSERT  Apartment(id,kitchensno,bathroomsno,floorno) values(@id...........

كذلك لا تنسي Commit في النهاية لانها غير موجودة في البروسيجر

#3

شكرا على المساعده

هذا الموضوع مغلق.

مواضيع مشابهة