برگزیده های پرشین تولز

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

fivestar

Registered User
تاریخ عضویت
14 نوامبر 2006
نوشته‌ها
73
لایک‌ها
0
سلام

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

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

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

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

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

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

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 منتقل میشود ! چرا ؟؟؟؟؟
 

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
 
بالا