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

مشكلة بسيطة في الربط الخارجي للجداول

بدأه shoshooooa في 15 مارس 2010 · 9 رد · 1,058 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني الافاضل عندي مشكلة في ربط الجداول عن طريق Left OUTER JOIN

فمثلا عند ربط جدول العميل Customer مع جدول اوامر العميل Custord

[Qiu71689.jpg

والجدول التاني

rOv71689.jpg

وربطت بينهم عن طريق Left OUTER JOIN

SELECT C.customer_name, D.prod_no, D.quantity

FROM custord_2 D

Left OUTER JOIN customer_2 C

ON D.customer_id = C.customer_id;

المفروض النتيجة تظهر كالتالي

wdV71227.jpg

بس انا لما اكتب كود الادخال وقبل ماكتب كود الربط اللي في Left OUTER JOIN يطلع لي هذا الخطاء

Server: Msg 8152, Level 16, State 9, Line 1

String or binary data would be truncated.

The statement has been terminated.

واذا ربطت مايظهر لي الصفوف اللي فيها Null

انتظر ارائكم اخوتي

#2

I dont understand what do you mean by:

كود الادخال وقبل ماكتب كود الربط

Mohamed Meshref

Software Design Engineer

SQL Server Team

Microsoft Corporation, Redmond HQ

Phone: +1-(425)704-8684

Mobile: +1-(425)445-7386

Email: mmeshref(at)microsoft(dot)com

#3

للمعلومية

كود الانشاء

CREATE TABLE Customer

(

CUSTOMER_ID CHAR(3) Not Null,

CUSTOMER_NAME VARCHAR(15) Not Null,

TELEPHONE CHAR(8),

TYPE CHAR(1),

CONSTRAINT PK_Customer PRIMARY KEY (CUSTOMER_ID)

);

CREATE TABLE Custord (

PROD_NO CHAR(3) Not Null,

CUSTOMER_ID CHAR(3) Not Null,

QUANTITY INT Not Null,

CONSTRAINT FK_Ord_Cust FOREIGN KEY (CUSTOMER_ID) REFERENCES Customer (CUSTOMER_ID)

);

جمل إدخال البيانات في جدول العميل :Customer_2

INSERT INTO Customer Values ('10', 'Ahmed', '111-1111', 'P');

INSERT INTO Customer Values ('20', 'Baher', '111-2222', 'P');

INSERT INTO Customer Values ('30', 'Samir', '111-3333', 'S');

INSERT INTO Customer Values ('40', 'Mounir', '222-1111', 'P');

INSERT INTO Customer Values ('50', 'Kamal', '333-1111', 'S');

INSERT INTO Customer Values ('60', 'Shady', '444-1111', 'P');

INSERT INTO Customer Values ('70', 'Hany', '555-1111', 'S');

INSERT INTO Customer Values ('88', 'Bassel', '888-1111', 'S');

INSERT INTO Customer Values ('99', 'Majed', '999-1111', 'S');

INSERT INTO Customer Values ('100', 'Magdi', '100-1111', 'S');

INSERT INTO Customer Values ('101', 'Ali', ' 101-1111', 'S');

ادخال الجدول التاني

INSERT INTO Custord Values ('444', '10', 35 );

INSERT INTO Custord Values ('111', '10', 21 );

INSERT INTO Custord Values ('222', '20', 3 );

INSERT INTO Custord Values ('444', '20', 10 );

INSERT INTO Custord Values ('111', '40', 15 );

INSERT INTO Custord Values ('666', '50', 7 );

INSERT INTO Custord Values ('111', '70', 24 );

INSERT INTO Custord Values ('666', '70', 5 );

INSERT INTO Custord Values ('333', 'NEW1', 98 );

INSERT INTO Custord Values ('333', 'NEW2', 99 );

السطرين الاخيرين المتلونة بالاحمر هي سبب المشكلة وهي جملة ----

Server: Msg 8152, Level 16, State 9, Line 1

String or binary data would be truncated.

The statement has been terminated.

تم تعديل هذه المشاركة بواسطة shoshooooa في 15 مارس 2010 في 21:48

#4

NEW1 and NEW2 are both 4 characters, but the table column is only 3 charachters in length

Mohamed Meshref

Software Design Engineer

SQL Server Team

Microsoft Corporation, Redmond HQ

Phone: +1-(425)704-8684

Mobile: +1-(425)445-7386

Email: mmeshref(at)microsoft(dot)com

#5

مشكور اخي الفاضل وجزاك الله كل خير

وهذه الرسالة

INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_Ord_Cust'. The conflict occurred in database 'yyy', table 'Customer', column 'CUSTOMER_ID'.

The statement has been terminated.

اصبحت تظهر ايضا

#6

لأنه لا يوجد في حقل PK في جدول customer القيمة 'new1' أو 'new2'

#7

لازم اضع قيمة new1 و new2 عشان تظهر null اخي الفاضل

#8

Then don't make it a foreign key

Mohamed Meshref

Software Design Engineer

SQL Server Team

Microsoft Corporation, Redmond HQ

Phone: +1-(425)704-8684

Mobile: +1-(425)445-7386

Email: mmeshref(at)microsoft(dot)com

#9

اتمنى ان توضح اكثر مافهم من العبارات اللي نص سطر :)

#10

You can't have a foreign key that doesn't exist in the other table, so you either choose values that exist in the other table, or remove the foreign key

Mohamed Meshref

Software Design Engineer

SQL Server Team

Microsoft Corporation, Redmond HQ

Phone: +1-(425)704-8684

Mobile: +1-(425)445-7386

Email: mmeshref(at)microsoft(dot)com

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