এখানে সমস্ত ভিন্ন পদ্ধতির একত্রিত করা।
- আপডেট নির্বাচন করুন
- একটি সাধারণ টেবিল এক্সপ্রেশন সঙ্গে আপডেট করুন
- একত্রিত করা
নমুনা সারণির কাঠামো নীচে রয়েছে এবং পণ্য_বাক থেকে পণ্য সারণিতে আপডেট হবে।
প্রোডাক্ট
CREATE TABLE [dbo].[Product](
[Id] [int] IDENTITY(1, 1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[Description] [nvarchar](100) NULL
) ON [PRIMARY]
Product_BAK
CREATE TABLE [dbo].[Product_BAK](
[Id] [int] IDENTITY(1, 1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[Description] [nvarchar](100) NULL
) ON [PRIMARY]
1. আপডেট নির্বাচন করুন
update P1
set Name = P2.Name
from Product P1
inner join Product_Bak P2 on p1.id = P2.id
where p1.id = 2
২. সাধারণ টেবিল এক্সপ্রেশন সহ আপডেট করুন
; With CTE as
(
select id, name from Product_Bak where id = 2
)
update P
set Name = P2.name
from product P inner join CTE P2 on P.id = P2.id
where P2.id = 2
3. মার্জ করুন
Merge into product P1
using Product_Bak P2 on P1.id = P2.id
when matched then
update set p1.[description] = p2.[description], p1.name = P2.Name;
এই মার্জ বিবৃতিতে, আমরা লক্ষ্যটিতে কোনও মিলের রেকর্ড না খুঁজে পাওয়া গেলে ইনসেটটি করতে পারি তবে উত্সটিতে উপস্থিত রয়েছে এবং দয়া করে বাক্য গঠনটি সন্ধান করুন:
Merge into product P1
using Product_Bak P2 on P1.id = P2.id;
when matched then
update set p1.[description] = p2.[description], p1.name = P2.Name;
WHEN NOT MATCHED THEN
insert (name, description)
values(p2.name, P2.description);
SET Table.other_table_id = @NewValue
) এর মধ্যে লিঙ্কটি সম্পাদনা করছেন তবে ওএন স্টেটমেন্টটিকে এমন কিছুতে পরিবর্তন করুনON Table.id = @IdToEdit AND other_table.id = @NewValue