PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : فیلم آموزشی حذف رکوردهای تکراری از یک جدول در SQL SERVER



admin
16 / February / 1970, 11:36 AM
*سلام و درود خدمت تمامی دوستان و کاربران وبسایت ایران دلفی.
در این پست مطلب آموزشی مفید و ارزشمندی از دوست عزیزمون آقای مسعود طاهری (مدرس و مشاور*SQL SERVER )*با کمک احمد غفاری ( مدرس و کارشناس نرم افزارهای مالی ) در قالب ویدئو و با حجم بسیار کم در اختیار دوستان قرار خواهد گرفت.

تماشای*پارت اول از سایت آپارات (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)

تماشای پارت دوم از سایت آپارات (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)

ضمنا فیلم مورد نظر قابل دانلود هم می باشد.

هر گونه سوال در مورد این ویدئو ها را در* همین قسمت مطرح نمایید.

admin
16 / February / 1970, 11:36 AM
بعد از انجام این عملیات لازم است تا جدول مورد نظر رو به صورت زیر اصلاح کنیم تا دیگر نتوان در آن رکورد های تکراری درج نمود.

ابتدا* طبق فیلم رکورد های تکراری رو مشاهده میکنیم.

کد:


with cte1 *as (
SELECT * , ROW_NUMBER() OVER (PARTITION BY id, firstName , lastName *ORDER BY id ) AS RowID
* * * * * FROM tblExample
* * * * * * * * )
* * * select * from cte1
* * * where RowID >1



لازم به ذکر است که سه فیلد id, firstName , lastName* از جدول مثال* tblExample هستند و*شما بایستی از*نام فیلدها و نام جدول خودتون استفاده کنید.
*
وبا تعویض*کد به صورت زیر آنها را حذف می کنیم.
کد:


with cte1 *as (
SELECT * , ROW_NUMBER() OVER (PARTITION BY id, firstName , lastName *ORDER BY id ) AS RowID
* * * * * FROM tblExample
* * * * * * * * )
* * * delete from cte1
* * * where RowID >1



تا اینجا توانستیم رکوردهای تکراری رو به کلی حذف نماییم.
در مرحله ی بعد بایستی* رکوردهایی رو پیدا کنیم که در آنها* مقادیر NULL* وجود دارد و*خصوصا فیلد کلید در آنها با مقدار NULL است.
کد:


select * from tblExample
where [id] is null



*حال اگر*رکوردها به اشتباه مقادیر Null دارند آنها را تصحیح می کنیم.
**این پروسه بایستی برای تمامی فیلدهایی که قرار است از آنها در primary key استفاده کنیم تکرار شود*و اگر رکوردها به صورت اشتباه درج شده با دستور زیر آنها را به صورت کلی حذف نماییم.

**
کد:


delete from tblExample
where [id] is null


******
در اینجا نوبت به مرحله ی بعدی*و نهایی میرسد که *تمامی تنظیمات انجام شده و جدول نرمال می شود.

در این مثال ما قرار است 3 فیلد id, firstName , lastName** را* primary key جدول tblExample* قرار بدهیم.

مرحله ی اول :

کد:


ALTER TABLE tblExample *
alter COLUMN [id] char(8) not null



مرحله ی دوم* :

کد:


ALTER TABLE tblExample*
alter COLUMN [firstName] nvarchar(12) not null



مرحله ی سوم :

کد:


ALTER TABLE tblExample *
alter COLUMN [lastName] nvarchar(12) not null



*مرحله ی چهارم و نهایی :

کد:


ALTER TABLE tblExample *
ADD CONSTRAINT pk_tblExampleId PRIMARY KEY (id,firstName,lastName)


***********


امید*است این آموزش مورد تایید واقع شده باشد.

tourbali
15 / August / 2015, 02:30 AM
ٱموزنده بود.مرسی