نمایش نتایج 1 تا 6 از 6

نام تاپیک: یک پروسیجر که از جداول دیگر هم برای ورود داده بهره می برد

  1. #1

    Question یک پروسیجر که از جداول دیگر هم برای ورود داده بهره می برد

    سلام
    من یک جدول دارم که دارای یک فیلد id که اوتو نامبر است و یک فیلد برای ورود نام و 3 فیلد اینتیجر دیگه که id های جداول دیگه هست که هر 3 مورد در یک جدول که id اون رو هم دارم .من این 3 فیلد آخر را در گزارشات فقط استفاده می کنم (برای راحت تر شدن کار) حالا می خوام یک پروسیجر داشته باشم که یک نام و یک id رو بگیره توسط اون id مقدار این 3 فیلد منو پیدا کنه و به همراه نام در جدول ثبت کنه
    در کل یعنی من یک جدول دارم که شامل 4 فیلد هست که یکی از اونا وارد و بقیه باید توسط خود پروسیجر از یک جدول دیگه پیدا بشه و در این جدول درج بشه
    من این کد رو نوشتم اما نمی دونم حالا باید چطوری مقدار اون 3 فیلد دیگه رو پیدا کنم
    کجا شو باید تغییر بدم؟
    CREATE PROCEDURE SpInsertTTopic(@IdResearcheriden int,@InterestingTpc nvarchar(100),@hasExit bit OUTPUT)
    AS
    IF EXISTS (SELECT InterestingTopic FROM TTopic WHERE InterestingTopic =@InterestingTpc )
    BEGIN
    SET @hasExit=1
    END
    ELSE
    BEGIN
    INSERT INTO TTopic
    (InterestingTopic ,RowLuck)
    VALUES (@InterestingTpc,0)
    SET @hasExit= 0
    END
    GO

  2. #2
    با subquery .
    مشکل کجاست؟!
    جاییکه باید بگی set=.... می تونی یه select بزنی.

  3. #3

    Question

    نقل قول نوشته شده توسط rezaei manesh
    INSERT INTO TTopic
    (InterestingTopic ,RowLuck)
    VALUES (@InterestingTpc,0)

    GO
    من مقدار اون 3 فیلد رو چطوری اینجا بزارم
    یعنی من 3 تا فیلد رو انتخاب کنم و در قسمت values هم یک سلکت بنویسم که اون 3 تا فیلد رو بر می گردونه؟

  4. #4
    عنی من 3 تا فیلد رو انتخاب کنم و در قسمت values هم یک سلکت بنویسم که اون 3 تا فیلد رو بر می گردونه؟
    دقیقا!

    منتها سه تا سلکت بنویس برای هر فیلد یکی
    مثلا اینجوری:

    insert into table1 (f1,f2,f3) values((select table2.f1 from table2),(select table3.f1 from table3),...)

  5. #5
    سلام
    آقا نمی شه ، سر سلکت گیر میده
    نباید سلکت رو داخل دستور خاصی بزاریم؟ پرانتز که جواب نمی ده!

  6. #6
    Subquery در دستور Select قابل استفاده نیست. شما میتونین به متغیرها مقدار بدین و این متغیرها رو Insert کنین. برای پر کردن متغیر از دستور Select به این شکل عمل کنید:

    DECLARE @tmp1 INT
    DECLARE @tmp2 INT
    SELECT @tmp1=MyColumn1, @tmp2=MyColumn2 FROM MyTable WHERE ...
    INSERT SomeTable(C1,C2) VALUES(@tmp1,@tmp2)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •