دستور UPDATE در SQL Server

تیم تحریریه 1403/10/04 0 62
لینک کوتاه https://zoheirsoftware.com/z/adb6f5cf2 |
دستور UPDATE در SQL Server,دستور Multirow UPDATE در SQL Server,انواع بروز رسانی در SQL Server

دستور UPDATE در SQL Server

دستور UPDATE در SQL Server یکی از دستورات اصلی برای مدیریت داده‌ها است که به شما امکان می‌دهد مقادیر یک یا چند ستون را در رکوردهای موجود یک جدول تغییر دهید.
این دستور با استفاده از عبارت SET مقادیر جدید را برای ستون‌های مشخص شده تعیین می‌کند و معمولاً همراه با شرط WHERE استفاده می‌شود تا فقط رکوردهای موردنظر به‌روزرسانی شوند.
اگر شرط WHERE تعیین نشود، همه رکوردهای جدول به‌روزرسانی می‌شوند که ممکن است منجر به تغییرات گسترده و ناخواسته شود.
 
برای افزایش دقت و اطمینان، می‌توان از شرط‌های مختلفی مانند مقایسه مقادیر، استفاده از توابع، یا کوئری‌های تو در تو برای انتخاب رکوردهای هدف استفاده کرد.
این امکان انعطاف‌پذیری بالایی را برای تغییر داده‌ها فراهم می‌کند.
با این حال، عدم استفاده صحیح از این دستور می‌تواند باعث تغییرات ناخواسته در کل داده‌های جدول شود، بنابراین بررسی تأثیر دستور قبل از اجرا اهمیت زیادی دارد.
 
همچنین، دستور UPDATE از قابلیت‌های پیشرفته‌ای مانند استفاده از مقادیر محاسباتی یا داده‌های جدول‌های دیگر پشتیبانی می‌کند.
به عنوان مثال، می‌توانید با استفاده از یک کوئری تو در تو، داده‌های یک جدول را براساس اطلاعات موجود در جدول دیگر به‌روزرسانی کنید.
این ویژگی‌ها دستور UPDATE را به ابزاری بسیار قدرتمند برای مدیریت و تغییر داده‌ها در SQL Server تبدیل می‌کند.
 
 
دستور UPDATE در SQL Server

ساختار کلی دستور UPDATE


فرم کلی دستور به شکل زیر است:

 

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;


اجزای دستور:

table_name: نام جدول هدف برای بروزرسانی.
SET column = value: ستون‌هایی که باید به‌روزرسانی شوند همراه با مقادیر جدید.
WHERE condition: شرطی که مشخص می‌کند کدام سطرها باید به‌روزرسانی شوند. اگر این شرط مشخص نشود، همه سطرها بروزرسانی می‌شوند.

 


 بروزرسانی یک سطر (Single Row Update)


برای بروزرسانی یک سطر خاص، شرطی را با استفاده از WHERE تعیین کنید.

مثال:

فرض کنید جدولی به نام Employees داریم:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name NVARCHAR(50),
    Department NVARCHAR(50),
    Salary INT
);

بروزرسانی یک سطر:



UPDATE Employees
SET Salary = 5000
WHERE EmployeeID = 1;


توضیح:

این دستور حقوق کارمند با EmployeeID برابر با 1 را به مقدار 5000 تغییر می‌دهد.

 

 

 

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

دستور Multirow UPDATE در SQL Server


اگر شرط در دستور WHERE شامل چند سطر باشد، مقادیر همه آن‌ها تغییر می‌کند.

مثال:

UPDATE Employees
SET Department = 'IT'
WHERE Department = 'Support';


توضیح:

این دستور تمام کارمندانی که در بخش "Support" کار می‌کنند را به بخش "IT" منتقل می‌کند.

 

 بروزرسانی همه سطرها (Update All Rows)

اگر شرط WHERE را حذف کنید، تمامی سطرهای جدول بروزرسانی می‌شوند.

مثال:

UPDATE Employees
SET Salary = Salary + 500;


توضیح:


این دستور حقوق تمامی کارمندان را 500 واحد افزایش می‌دهد.

 

بروزرسانی با استفاده از JOIN

می‌توانید داده‌های یک جدول را با استفاده از داده‌های جدول دیگر به‌روزرسانی کنید.

مثال:


فرض کنید جدول دیگری به نام Departments داریم:

CREATE TABLE Departments (
    DepartmentName NVARCHAR(50),
    Bonus INT
);

بروزرسانی داده‌ها با JOIN:

 

UPDATE E
SET E.Salary = E.Salary + D.Bonus
FROM Employees E
INNER JOIN Departments D ON E.Department = D.DepartmentName;


توضیح:

این دستور حقوق کارمندان را بر اساس مقدار پاداش موجود در جدول Departments افزایش می‌دهد.

 

انواع بروزرسانی در SQL Server

  • بروزرسانی با مقادیر ثابت (Static Update)

    در این حالت، مقادیر جدید به‌صورت ثابت تعریف می‌شوند.

مثال:

 

UPDATE Employees
SET Department = 'Finance'
WHERE EmployeeID = 2;

 

  • بروزرسانی با مقادیر محاسباتی (Computed Update)

    در این حالت، مقادیر جدید با استفاده از توابع یا عملیات محاسباتی تعیین می‌شوند.

مثال:

 

UPDATE Employees
SET Salary = Salary * 1.1
WHERE Department = 'IT';
  • بروزرسانی با استفاده از SELECT (Subquery Update)

    می‌توانید از یک زیرپرسش (Subquery) برای تعیین مقدار جدید استفاده کنید.

مثال:

UPDATE Employees
SET Salary = (SELECT AVG(Salary) FROM Employees WHERE Department = 'IT')
WHERE Department = 'Support';


توضیح:

این دستور حقوق تمامی کارکنان بخش "Support" را برابر با میانگین حقوق بخش "IT" تنظیم می‌کند.

 

  •  بروزرسانی چند جدول (Update Multiple Tables)

    از MERGE یا JOIN برای بروزرسانی چندین جدول استفاده می‌شود.

مثال با MERGE:

MERGE INTO Employees AS Target
USING Departments AS Source
ON Target.Department = Source.DepartmentName
WHEN MATCHED THEN
    UPDATE SET Target.Salary = Target.Salary + Source.Bonus;


توضیح:
این دستور حقوق کارمندان را بر اساس مقدار پاداش موجود در جدول Departments افزایش می‌دهد.

 

 

انواع بروزرسانی در SQL Server

مدیریت خطاها در دستور UPDATE

  • استفاده از TRY...CATCH

    می‌توانید خطاهای احتمالی را با استفاده از بلوک‌های TRY...CATCH مدیریت کنید.

مثال:

 

BEGIN TRY
    UPDATE Employees
    SET Salary = 0
    WHERE EmployeeID = 99; -- کارمند وجود ندارد
END TRY
BEGIN CATCH
    PRINT 'خطا رخ داد: ' + ERROR_MESSAGE();
END CATCH;
  •  استفاده از تراکنش‌ها

    با استفاده از BEGIN TRANSACTION می‌توانید اطمینان حاصل کنید که اگر یک بخش از عملیات ناموفق بود، تمام تغییرات لغو شوند.

مثال:

BEGIN TRANSACTION;

UPDATE Employees
SET Salary = Salary + 500
WHERE Department = 'HR';

-- خطای عمدی
UPDATE Employees
SET Salary = NULL
WHERE EmployeeID = -1;

ROLLBACK; -- در صورت بروز خطا، تغییرات لغو می‌شوند


بهینه‌سازی عملیات UPDATE

  • استفاده از ایندکس‌ها

    وجود ایندکس روی ستون‌های استفاده‌شده در شرط WHERE می‌تواند سرعت عملیات را افزایش دهد.
  • به‌روزرسانی دسته‌ای (Batch Update)

    اگر حجم داده‌ها زیاد است، آن‌ها را به دسته‌های کوچک‌تر تقسیم کنید.

 

WHILE (1 = 1)
BEGIN
    UPDATE TOP (1000) Employees
    SET Salary = Salary + 100
    WHERE Department = 'Finance';
    
    IF @@ROWCOUNT = 0 BREAK;
END;
  • انتخاب شرط‌های دقیق

    از شروط دقیق در WHERE استفاده کنید تا فقط سطرهای ضروری بروزرسانی شوند.

 

 

بهینه‌سازی عملیات UPDATE

مثال پروژه محور از دستور UPDATE در SQL Server

پروژه نمونه: بروزرسانی اطلاعات کاربران
افزایش رتبه کاربران فعال و غیرفعال کردن کاربران غیر فعال.

  • جدول کاربران

    CREATE TABLE Users (
        UserID INT PRIMARY KEY,
        UserName NVARCHAR(50),
        IsActive BIT,
        Rank INT
    );
  • درج داده‌های نمونه

    INSERT INTO Users (UserID, UserName, IsActive, Rank)
    VALUES 
    (1, 'Ali Rezaei', 1, 5),
    (2, 'Sara Ahmadi', 1, 3),
    (3, 'Hossein Karimi', 0, 2);
  • افزایش رتبه کاربران فعال

    UPDATE Users
    SET Rank = Rank + 1
    WHERE IsActive = 1;
  • غیرفعال کردن کاربران غیر فعال

    UPDATE Users
    SET IsActive = 0
    WHERE IsActive = 0;
  •  مشاهده کاربران

    SELECT * FROM Users;
    

 

 

 

 

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.3k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.