सबसे पहले, आप एक अद्वितीय अनुक्रमणिका या बाधा का उपयोग करके किसी डुप्लिकेट को तालिका में कभी भी होने से रोक सकते हैं। एक इंडेक्स/बाधा कॉन्सर्ट में काम कर सकती है नीचे दिए गए सुझावों के साथ। यदि आप केवल एक अद्वितीय अनुक्रमणिका का उपयोग करें और नीचे दिए गए समाधानों में से किसी एक का नहीं, डुप्लिकेट रिकॉर्ड डालने से एक त्रुटि होगी और आपको इसे दूसरे छोर पर संभालना होगा।
इसके अतिरिक्त, मैं शायद एक संग्रहीत प्रक्रिया के माध्यम से डेटा डालूंगा जो यह देखने के लिए जांचता है कि पंक्ति पहले से मौजूद है या नहीं। ऐसा करने के लिए, आप या तो MERGE . का उपयोग कर सकते हैं बयान, जैसा कि इस छद्म कोड में दिखाया गया है:
create procedure MyProcedure
(
@Name nvarchar(100),
...
)
as
merge MyTable
using
(
select @Name,...
) as source (Name, ...)
on MyTable.Name = source.Name
when not matched then
insert (Name,...) values (source.Name,...)
when matched then
update set Name = @Name,...
या, आप रिकॉर्ड के अस्तित्व की जांच कर सकते हैं और मैन्युअल रूप से सम्मिलित या अपडेट कर सकते हैं:
create procedure MyProcedure
(
@Name nvarchar(100),
...
)
as
if not exists (select * from MyTable where Name = @Name)
begin
insert into MyTable (Name,...) values (@Name,...)
end
else
begin
update MyTable
set ...
where Name = @Name
end