آژانس هواپیمایی
pop up

استفاده از فیلدهای متنی در تریگر

شروع موضوع توسط fivestar ‏22 آپریل 2008 در انجمن SQL Server

  1. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    سلام

    من تازه تریگر نوشتن رو شروع کردم . یه سوال برام پیش اومده

    مثلا ما حالت FOR INSERT رو در نظر بگیریم

    در انتقال محتویات فیلدهای int بین دو جدول مشکلی ندارم

    ولی اگر فیلدم از نوع nvarchar باشه

    با insert کردن تو جدول A فقط کاراکتر اول رشته در فیلد مشابه که تو جدول B داریم ریخته می شود

    برای انتقال محتویات فیلدهای متنی باید فیلدهام تو جدولهای مبدا و مقصد از چه نوعی باشن ؟؟
     
  2. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    توضیح بیشتر :


    جدول T1 شامل فیلدهای name1 از نوع nvarchar و mab1 از نوع int است

    جدول T2 شامل فیلدهای name2 از نوع nvarchar و mab2 از نوع int است


    حالا تریگر bb را روی جدول T1 اعمال می کنیم :

    کد:
    CREATE TRIGGER   bb   ON T1
    FOR  INSERT
     
    AS
    declare @x nvarchar,@y int 
    select  @x = name1,@y = mab1  from  inserted 
    INSERT INTO T2(name2,mab2)  VALUES   (@x,@y)
    
    
    
    

    باید با اضافه کردن یک رکورد جدید در T1 بطور خودکار یک رکورد با مقادیر مشابه در T2 اضافه شود ولی تنها کاراکتر اول از مقدار name1 به name2 منتقل میشود ! چرا ؟؟؟؟؟
     
  3. shahriarC#

    shahriarC# کاربر تازه وارد

    تاریخ عضویت:
    ‏31 می 2008
    نوشته ها:
    4
    تشکر شده:
    0
    PHP:
    CREATE TRIGGER TriggerName
       ON  TableName
       AFTER INSERT
    AS 
    BEGIN

        INSERT INTO T2
    (F1,F2)
        
    SELECT F1,F2 FROM INSERTED
    END