کوئری برای افزودن مقدار کلید خارجی

federrer

New Member
دو تا جدول داریم که از طریق یه کلید خارجی بهم متصل هستن .یعنی یک فیلد داریم که در جدول اصلی بعنوان کلید اصلی تعریف شده و در جدول فرعی یه فیلد معمولیه.

میخوام وقتی مقدار رو در جدول اصلی وارد می کنم بصورت اتومات در جدول فرعی هم مقدار فیلد وارد شود .

چه کو ئری باید بنویسم؟؟؟
 

federrer

New Member
توضیح

چیز عجیب غریب و پیچیده ای نیست !

چند تا جدول اصلی داریم به اسم SECTOR که در هر کدوم PrimaryKey اسمش هست ID که با اضافه شدن هر رکورد به مقدار اون یه دونه اضافه می شه

یه جدول مادر داریم به اسم ATC که برای رابطه با تک تک جدول های SECTOR ء از هر جدول ء فیلد ID رو به عنوان کلید خارجی قرض می گیره

یعنی تو جدول ATC یه فیلد داریم به اسم IDSECTOR1 که دقیقا مشخصه که همون فیلد ID در جدول SECTOR1 هست و یه فیلد داریم به اسم IDSECTOR2 که همون فیلد ID در جدول SECTOR2 هست و ......

تو خود جدول ATC هم PrimaryKey اسمش هست ID که با اضافه شدن هر رکورد به مقدار اون یه دونه اضافه می شه
حالا جای جالب داستان اینجاست D: تمام جدول های SECTOR و جدول مادر که اسمش ATC بود ء همشون تو یه فرم عملیات INSERT شون انجام میشه !


من الان به راحتی می تونم برای تک تک جدول های SECTOR یه خط QUERY بنویسم و Insert رو براشون انجام بدم (به زبان سی شارپ)


;"(String insertsector1="INSERT INTO SECTOR1(P1,P2)VALUES(S1.text,S2.text

(چون با اضافه کردن رکورد مقدار ID بطور خودکار +1 می شود ء دیگر نیاز نیست از طریق QUERY آن را وارد کنیم)

ولی برای جدول ATC که فیلد کلید اصلی هر جدول SECTOR رو تو خودش داره
برای پر کردن این فیلدها به مشکل خوردم

;"(?????,????) String insertsector1="INSERT INTO SECTOR1(IDSECTOR1,IDSECTOR2)VALUES


علامت سوالها یعنی اینکه هیچ OBJ ندارم که مقدار IDSECTOR ها رو ازش بخونم !!!!!!!!!!!!!!

پس ترجیح میدم یه کاری کنم که IDSECTOR ها بطور اتومات تو ATC هم اضافه شه D:
 

mazoolagh

Active Member
يعني اگر شما بعد از هر insert‌در يكي از جداول SECTORn مقدار ID اون رو داشته باشين مشكلتون حله؟
 

federrer

New Member
يعني اگر شما بعد از هر insert‌در يكي از جداول SECTORn مقدار ID اون رو داشته باشين مشكلتون حله؟

مقدار ID از یک شروع میشه و با اضافه کردن هر رکورد +1 میشه. یعنی الان هم دارمش !!!

نمی تونم مقدار ID رو از جدولهای SECTOR به ATC پاس بدم . هدف اینه !
 

federrer

New Member
. رفتم دنبالش یه تابع گیر آوردم که و قتی میزاریش تو sp و اجرا می کنی دقیقا آخرین مقدار فیلد ID رو بر می گردونه

SELECT IDENT_CURRENT('TABLE NAME')

حالا می خوام برای تک تک جدولهای sector از این تابع استفاده کنم . نیاز دارم که نتیجه هر دستور select رو بریزم تو یه متغیر محلی که وقتی خواستم insert کنم راحت باشم !

دستوری پیدا نکردم که بتونم نتیجه هر SELECT رو بریزم تو یه متغیر محلی . چی کار کنم ؟؟؟؟
 

mazoolagh

Active Member
يعني اگر شما بعد از هر insert‌در يكي از جداول SECTORn مقدار ID اون رو داشته باشين مشكلتون حله؟

مقدار ID از یک شروع میشه و با اضافه کردن هر رکورد +1 میشه. یعنی الان هم دارمش !!!

نمی تونم مقدار ID رو از جدولهای SECTOR به ATC پاس بدم . هدف اینه !

من كه گفتم مشكل شما نداشتن مقدار ID است!

تو راهنماي Mssql دستور declare رو پيدا كن.
 

جدیدترین ارسال ها

بالا