PDA

View Full Version : پركردن يك ستون براساس دو ستون ديگر



Iran58
پنج شنبه 13 بهمن 1390, 13:24 عصر
سلام
يك جدول داريم كه داراي 4ستون (id،name،family،nameoffamily)مي باشد
حال مي خواهم هر گاه نام و فاميل را پر كردم سيستم بطور اتوماتيك نام وفاميلي را باهم در ستون nameoffamily
پر كند
مثلا نام علي و فاميلي علوي را وارد كردم سيستم خودش در ستون nameoffamily بنويسد علي علوي
چه كدي بايد بنويسم
باتشكر

in_chand_nafar
پنج شنبه 13 بهمن 1390, 14:41 عصر
ه اين ستون مورد نظر شما اصطلاحاً Computed Column مي گن و توي 2008 بهتر از حالت Persisted براي اون استفاده كنيد
Computed Column : اگر تعريف عاميانه و ساده بخواهم بگم بايد اين رو بگم كه ستون مورد نظر شما محاسباتي ميشه يعني به ازاي هر بار Select عمليات محاسبه براي استخراج داده ستون مورد نظر انجام ميشه
Persisted : توي اين حالت شما وقتي داده را درج و يا ويرايش مي كنيد داده مورد نظر در ستون محاسباتي ذخيره مي شود
مثال
USE TEMPDB
GO
CREATE TABLE T1
(
ID INT,
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
FullName AS (FirstName + ' ' +LastName )PERSISTED
)
GO
INSERT INTO T1 VALUES (1,N'مسعود',N'طاهري')
INSERT INTO T1 VALUES (1,N'فريد',N'طاهري')
INSERT INTO T1 VALUES (1,N'احمد',N'غفاري')
INSERT INTO T1 VALUES (1,N'خديجه',N'افروزنيا')
GO
SELECT * FROM T1

اگر شما اين مثال رو بدون Persisted ايجاد كنيد در حجم بالاي داده سرعت شما پايين خواهد اومد اصطلاحاً Cost Query شما بالا خواهد شد
راستي يادم رفت براي جدول PK در نظر بگيرم كه اين كار رو خودت انجام بده