دوست عزیزم،
من دقیقا نمیدونم به چه صورت این اطلاعات وارد جدول میشن. مثلا آیا بعد از عمل Insert، کاربر باید در جریان موفقیت یا عدم موفقیتش قرار بگیره؟ یا اینکه عمل Insert یکی از کارهای Background شماست و به یوزر کاری نداره. ولی علت اینکه من استفاده از Unique Constraint رو پیشنهاد کردم این بود که اگر شما به طور دستی وجود Value رو بخواید کنترل کنید، در حقیقت یک Query اضافی داره انجام میشه. ولی
Unique Constraint این عمل اضافی رو نداره.
ضمنا خطایی که در اثر مغایرت Insert با Unique Constraint ایجاد میشه، در هر زبان برنامه نویسی قابل کنترله و الزاما نباید به یوزر نمایش داده بشه.
ولی به هر حال باز اگر صلاح در اینه که دستی کنترل کنین، این کار امکان پذیره:
IF NOT EXISTS
(SELECT FieldKey FROM TableName WHERE FieldKey=FieldValue)
INSERT TableName(FieldList) VALUES(ValuesList)
در مورد سوال اول، راه استانداردی وجود نداره ولی شما میتونین روی جدول اولی یک Trigger بنویسید که موقع Insert، مقادیر رو به جدول دوم هم وارد کنه. به این شکل شما Insert رو روی یک جدول انجام میدین، ولی در دو جدول وارد میشه.
موفق باشین