السلام عليكم ورحمة الله وبركاته
يعطيكون العافية جميعا .....
أنا عندي قاعدة بيانات بالsql srever 2008 (و هي وظيفة لمادة عندي اسم القاعدة المستودعات) و منها في جدول للموظفين و المواد ، و يوجد على أحد الحقول قيد و الجدول كالتالي :
Create table EmployeesProducts
(
ProductID int ,
EmployeeID int ,
ReceptionDate datetime not null constraint DF_ReceptionDate default ( getdate()),
ReturnDate datetime default null ,
Constraint PK_EmployeesProducts primary key (ProductID,EmployeeID)
)
و الحقل يلي عليه قيد هو حيت أنا الحقل (ReceptionDate) هو تاريخ الاستلام للمادة ، و الحقل (ReturnDate) هو تاريخ إعداة المادة لو أعديت ، ولكن القيد هو أنه يجب أن يكون تاريخ لإعادة null
في حال لم تعاد المادة ولكن عندما تعاد المادة يجب أن يكون تاريخ لإعداة أكبر أو يساوي تاريخ الاستلام و هذا هو القيد :
Alter table EmployeesProducts
add constraint CK_ReturnDate_ReceptionDate
check ( ReturnDate >= ReceptionDate or ReturnDate = null)
لكن عند الإدخال حسب هذا القيد فسوف يقبل التاريخ سواء أكان أكبر أو أصغر أو يساوي و يقبل الnull " يعني فعليا لم يتم تحقيق الشرط الذي أريده بل أعطا سماحيات كأني لم أكتبه " ، و عندما أحذف (or ReturnDate = null) فإنه لا يقبل الإدخال القيم للجداول فارغة و يجبرني على وضع تاريخ للإعادة " و هنا أيضا تحقق جزء من قيدي و لم يتحقق كله حيث أنني أريد أن يقبل لبعض السجلات قيمة فارغة لتاريخ الإعادة " ، فما العمل ؟؟
الرجاء ايجاد حل أو طريقة