ورود

View Full Version : the columns in table do not match an existing primary key or unique constraint



mosafer_deltang
یک شنبه 19 آبان 1392, 11:28 صبح
با سلام خدمت اساتید گرامی
با توجه به شکل ضمیمه، فیلد FactID در جدول FactSaleDetail از جدول FactSaleMaster گرفته می شود.
فیلد KalaID هم باید از جدول Kala گرفته شود.

اما مشکلی که دارم اینه که من نمیخوام این فیلد رو کلید اصلی تعریف کنم بنابراین هنگام ایجاد Relation این خطا رو میده:

the columns in table 'Kala' do not match an existing primary key or unique constraint

یعنی فیلد KalaID در جدول Kala یا باید کلید اصلی باشد و یا باید خصوصیت یونیک داشته باشد. سایت مایکروسافت هم همینو میگه:

http://technet.microsoft.com/en-us/library/ms165684%28v=sql.105%29.aspx

حالا وقتی به همان روشی که این سایت گفته KalaID را یونیک میکنیم باز هم این خطا از بین نمیرود

http://technet.microsoft.com/en-us/library/ms190024(v=sql.105).aspx

هر پیشنهادی میتونه کمکم کنه
ممنون

حمیدرضاصادقیان
یک شنبه 19 آبان 1392, 19:48 عصر
سلام.
ببینید درواقع باید یک مقدار Unique در جدول کالا باشه که الان نیست!!!
درواقع الان باترکیب 4 تا فیلد یک مقدار Unique به شما میده. این خطا هم به دلیل این هست که شما دارید یک رابطه یک به چند ایجاد میکنید و اگر ترکیب این 4 فیلد یکسان باشه رکورد شما Unique خواهد بود ولی شما فقط یک فیلد رو با جدول دوم ارتباط دادید که اینجا به مشکل برمیخوره و SQL Server نمیتونه بفهمه.
شما میتونید اون چهار فیلد رو ترکیبش رو یک Unique در نظر بگیرید و از PK خارج کنید و به جای اون فقط فیلد KalaID رو به عنوان کلید در نظر بگیرید و اونو ارتباط بدید یا فیلد ID رو در نظر بگیرید و با اون این ارتباط رو ایجاد کنید.