دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
متغیرها در پایگاه داده SQL
1403/10/12 -
تابع یا Method در سی شارپ
1403/10/12 -
کلاس (Class) در سیشارپ
1403/10/12 -
pivot Table در پایگاه داده SQL Server
1403/10/10 -
شیء گرایی در سی شارپ
1403/10/09 -
جداول موقت در SQL و استفاده از CTE
1403/10/08
دستور 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 افزایش میدهد.
مدیریت خطاها در دستور 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 در 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;
دوره های مرتبط
آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .