الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اتخطى القيم المتشابهة اثناء استيراد البيانات من ملف TXT الى SQL

بدأه fathi84 في 9 ديسمبر 2016 · 7 رد · 597 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اثناء استيراد داتا من ملف TXT  واجهنى مشكلة ان بعض القيم متكررة
وهذا يعيق استيراد هذه البيانات لانى محدد هذا الحقل PRIMARY KEY

استعمل هذ الكود

 

CREATE TABLE EcdP(
number nchar(11),
PRIMARY KEY ( number ),
)
BULK
INSERT EcdP
FROM 'C:\Intel\aa.txt'
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)

والحمد لله شغال فقط فى حالة القيم داخل ملف ال TXT غير متكرره   (visual studio 2010)


ما اريده هو تعديل هذا الكود لكى يهمل القيم المتشابه مع القيم التى تم ادخالها سابقا؟؟؟

 

 شكرا

#2

السلام عليكم ورحمة الله وبركاتة

عمل ادراج بجدول اخر ثم تتاكد ان ليس به تكرار ثم نقل الي الول اذا كان ليس به تكرار او اخبار المستحدم باماكن التكرار

بالتوفيفق

1
#3
KARIMSOFT كتب:

السلام عليكم ورحمة الله وبركاتة

عمل ادراج بجدول اخر ثم تتاكد ان ليس به تكرار ثم نقل الي الول اذا كان ليس به تكرار او اخبار المستحدم باماكن التكرار

بالتوفيفق

عند محاولة سكب البيانات فى جدول الاختبار ثم ترحيلة الى جدول  الهدف

وجدت

كمية البيانات كبيرة جدا جدا فى الجدول الاول كيف افحص الحقل فى الجدول لتلاشى التكرار

وفشل عملية النقل بين الجدولين

#4

يا جماعة عاوز انقل بيانات بشرط عدم التكرار

سواء من ملف TXT او من جدول تم ملئة عشوائيا اقصد به بيانات مكرره كتير

تحتاج فلتره

ساعدونى

#5

جرب هذا الكود

insert into main
select tmp.*
from
		tmp 
	left join 
		main
	on
		tmp.id=main.id
where
	main.id is null

بالتوفيق

#6

الحمد لله الكود ده شغال لكن فى حالة الجدول الاول ليس به تكراراقصد به 

PRIMARY KEY

للحقل   .

 

كود الدمج هذا لا يزيد ولا ينقص من الجدول الاول ....

اريد فى حال وجد جدول ملئ ببيانات عشوائية متكرره اريد نقل بياناته بدون تكرار فى الجدول الجديد

merge into Customers1 as Target
using Customers as Source
on Target.CustomerID=Source.CustomerID
when matched then 
update set Target.CompanyName = Source.CompanyName,
Target.ContactName = Source.ContactName,
Target.ContactTitle = Source.ContactTitle,
Target.Address = Source.Address,
Target.City = Source.City,
Target.Region = Source.Region,
Target.PostalCode = Source.PostalCode,
Target.Country = Source.Country,
Target.Phone = Source.Phone,
Target.Fax = Source.Fax
when not matched then
insert (CustomerID,CompanyName,ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax) 
values (Source.CustomerID,Source.CompanyName,Source.ContactName,ContactTitle,Address,City,Region,PostalCode,Country,Phone,Fax);
#7

try this code

merge into 	Customers1 as Target
using 		(select Distinct * 	from Customers) as Source
	on 
		Target.CustomerID=Source.CustomerID
when matched then 
	update 
	set 
		Target.CompanyName = Source.CompanyName,
		Target.ContactName = Source.ContactName,
		Target.ContactTitle = Source.ContactTitle,
		Target.Address = Source.Address,
		Target.City = Source.City,
		Target.Region = Source.Region,
		Target.PostalCode = Source.PostalCode,
		Target.Country = Source.Country,
		Target.Phone = Source.Phone,
		Target.Fax = Source.Fax
when not matched then
	insert 
		(
		CustomerID,
		CompanyName,
		ContactName,
		ContactTitle,
		Address,City,
		Region,
		PostalCode,
		Country,
		Phone,
		Fax
		) 
	values 
		(
		Source.CustomerID,
		Source.CompanyName,
		Source.ContactName,
		ContactTitle,
		Address,
		City,
		Region,
		PostalCode,
		Country,
		Phone,
		Fax
		);
1
#8

الحمد لله كله تمام جزاك الله كل خير وجعله الله فى ميزان حسناتك

تم تعديل هذه المشاركة بواسطة fathi84 في 16 ديسمبر 2016 في 20:05

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…