
50 سوال ضروری SQL Server 2025 (اس کیو ال سرور) + پاسخ کامل
یادگیری SQL Server بدون آشنایی با سوالات متداول و چالش هایی که هر روزه توسعه دهندگان باهاش مواجه میشن، مثل رانندگی بدون دونستن علائم راهنماییه! تو این راهنمای کامل، ما به سراغ ۵۰ سوال ضروری SQL Server 2025 میریم.
سوالاتی که نه فقط تو مصاحبه های شغلی، بلکه برای درک عمیق مفاهیم پایه و پیشرفته SQL هم حیاتی هستن. هدف ما اینه که با پاسخهای دقیق، کاربردی و آموزشی به هر سوال، یه منبع سریع و جامع یادگیری برات فراهم کنیم.
(یه پیشنهاد عالی): میخوای تو دنیای دیتا حرفه ای بشی؟ یک مجموعه کامل 0 تا 100 و پروژه محور با مدرس های متخصص و کاربلد برات آماده کردیم که میتونی باهاش خیلی سریع، مهارتهای پایگاه داده و SQL رو به دست بیاری! پس همین الان شروع کن چون تمام ابزارهای لازم برای تبدیل شدن به یه متخصص داده رو با تخفیف های ویژه برات فراهم کردیم! برای ورود به دنیای پایگاه داده، اینجا کلیک کن.
چه تازه کار باشی و چه داری برای ورود به بازار کار یا مصاحبه تخصصی آماده میشی، این مجموعه سوال ضروری SQL Server 2025 کمک میکنه به جای حفظ کردن، واقعا بفهمی چطوری باید از این ابزار قدرتمند به شکل حرفه ای استفاده کنی.
50 سوال ضروری SQL Server در مصاحبه های شغلی
1. دو حالت احراز هویت در SQL Server کدام ها هستن؟
یک سوال ضروری SQL Server مربوط به حالت های احراز هویت است. در SQL Server دو حالت احراز هویت وجود داره:
- Windows Mode
- Mixed Mode
برای تغییر حالت احراز هویت، میتونید از منوی Tools در تنظیمات پیکربندی SQL Server استفاده کنید و وارد صفحه Security بشید.
2. SQL Profiler چیست؟
یک سوال ضروری SQL Server مربوط به SQL Profiler است.
برای مطالعه بیشتر در زمینه آشنایی با مراحل ایجاد دیتابیس و تنظیمات اولیه در SQL Server، پیشنهاد میشه مقاله «ساخت دیتابیس در SQL Server» رو مطالعه کنید.
SQL Profiler یه ابزاری هست که به مدیر سیستم اجازه میده تا رویدادهای داخل SQL Server رو مانیتور کنه. این ابزار عمدتا برای گرفتن و ذخیره داده های مربوط به هر رویداد از یک فایل یا جدول جهت تحلیل استفاده میشه.
3. رویه ذخیره شده بازگشتی (recursive stored procedure) چیست؟
SQL Server از رویه ذخیره شده بازگشتی پشتیبانی میکند که خودش، خودش رو فراخوانی میکند. رویه ذخیره شده بازگشتی رو میشود به عنوان روشی برای حل مسئله تعریف کرد که در اون راه حل به صورت تکراری به دست میاد. این رویه میتونه تا 32 سطح تو در تو باشد.
CREATE PROCEDURE [dbo].[Fact]
(
@Number Integer,
@RetVal Integer OUTPUT
)
AS
DECLARE @In Integer
DECLARE @Out Integer
IF @Number != 1
BEGIN
SELECT @In = @Number – 1
EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)
SELECT @RetVal = @Number * @Out
END
ELSE
BEGIN
SELECT @RetVal = 1
END
RETURN
GO4. تفاوت بین جدول های موقت محلی و عمومی چیست؟
جدول های موقت محلی (local temporary tables) فقط زمانی قابل مشاهده هستند که اتصال برقرار باشد و وقتی اتصال بسته میشود، این جدول ها هم حذف میشوند.
CREATE TABLE #<tablename>جدول های موقت عمومی (global temporary tables) برای همه کاربران قابل مشاهده هستند و وقتی اتصالی که اون رو ایجاد کرده بسته شود، حذف میشوند. این نکته یک سوال ضروری SQL Server است که توسعه دهندگان هنگام مدیریت داده های موقت باید به آن توجه کنند.
CREATE TABLE ##<tablename>5. CHECK constraint چیست؟
یک سوال ضروری SQL Server شناخت CHECK constraint است. CHECK constraint میتونه روی یک ستون در جدول اعمال شود تا مقدارهایی که داخل اون ستون قرار میگیرند را محدود کند. هدف از Check constraint، اعمال یکپارچگی هست.

6. آیا SQL Server میتواند به سرورهای دیگر لینک شود؟
در پاسخ به این سوال ضروری SQL Server میتواند به هر دیتابیسی که ارائه دهنده OLE-DB داشته باشد لینک شود
(یه پیشنهاد هیجانانگیز): تا حالا فقط داده ها رو میدیدی ولی از حالا وقتشه کنترلشون رو بدست بگیری! با آموزش SQL مثل یه حرفه ای داده ها رو مدیریت کنی. این دوره آموزشی از پایه تا پیشرفته و کاملا کاربردی طراحی شده و همین حالا میتونی با تخفیف ویژه تهیه کنی. پس اگه میخوای از یه کاربر ساده، به تحلیلگر داده تبدیل بشی، وارد دوره آموزش SQL شو و دنیای دیتا رو با مهارت های خودت زیر و رو کن!
مثلا: Oracle یک ارائه دهنده OLE-DB داره که امکان اتصال به گروه SQL Server رو فراهم میکند.
7. زیرکوئری (sub query) چیست و چه ویژگی هایی دارد؟
زیرکوئری، یه کوئری هست که میتونه داخل یه کوئری اصلی مثل Select ،Update ،Insert یا Delete قرار بگیرد. استفاده از زیرکوئری یک سوال ضروری SQL Server است که به شما امکان میدهد نتایج پیچیده تر و شرط های دقیق تری در کوئری ها اعمال کنید.
ویژگی های زیرکوئری به این صورته:
- زیرکوئری نباید شامل دستور order by باشد
- زیرکوئری باید در سمت راست عملگر مقایسه ای در کوئری اصلی قرار بگیرد
- زیرکوئری باید داخل پرانتز نوشته بشه چون باید قبل از کوئری اصلی اجرا شود
- بیش از یک زیرکوئری میتونه استفاده شود
8. انواع زیرکوئری چیست؟
سه نوع زیرکوئری وجود دارد:
- زیرکوئری تک ردیفی که فقط یک ردیف را برمیگرداند
- زیرکوئری چند ردیفی که چند ردیف را برمیگرداند
- زیرکوئری چند ستونی که چند ستون رو به کوئری اصلی برمیگرداند و کوئری اصلی با استفاده از نتیجه اون اجرا میشود
9. SQL Server Agent چیست؟
SQL Server Agent نقش مهمی در وظایف روزمره مدیر دیتابیس (DBA) ایفا میکند. آشنایی با عملکرد و تنظیمات SQL Server Agent، یک سوال ضروری SQL Server است چون این سرویس با استفاده از موتور زمانبندی، اجرای وظایف را در تاریخ و زمان مشخص به صورت خودکار و آسان مدیریت میکند.
10. کارهای زمانبندی شده در SQL Server چیست؟
کارهای زمانبندی شده یا job ها یک سوال ضروری SQL Server است که برای خودکار سازی فرآیندهایی استفاده میشن که قراره در زمان مشخص و به صورت دوره ای اجرا بشن.
(یه پیشنهاد خفن): همیشه حس کردی دیتابیس کُنده یا بهینه نیست؟ وقتشه با یادگیری Performance Tuning، دیتابیس رو به نهایت سرعت و کارایی برسونی. این دوره به صورت جامع و تخصصی طراحی شده و همین حالا میتونی با تخفیف ویژه تهیه کنی. پس اگه میخوای به متخصص بهینه سازی عملکرد تبدیل بشی، وارد دوره آموزش Performance Tuning شو و کاری کن دیتابیس با نهایت سرعت پاسخ بده!
این زمانبندی باعث میشه دخالت انسانی، مخصوصا در ساعات شب، کاهش پیدا کنه و تغذیه داده ها در زمان مشخص انجام بشه. کاربر همچنین میتونه ترتیب اجرای وظایف رو هم مشخص کنه.
11. COALESCE در SQL Server چیست؟
COALESCE برای برگردوندن اولین مقدار غیر null بین آرگومان ها استفاده میشود. این تابع برای زمانی کاربرد دارد که بخوایم از بین چند ستون، اولین مقدار غیر تهی رو دریافت کنیم.
مثال:
Select COALESCE(empno, empname, salary) from employee;12. استثناها در برنامه نویسی SQL Server چطور مدیریت میشوند؟
در جواب سوال ضروری SQL Server میشه گفت که استثناها با استفاده از ساختار TRY—CATCH مدیریت میشوند. اسکریپت ها داخل بلوک TRY نوشته میشوند و مدیریت خطاها در بلوک CATCH انجام میشود.
13. هدف از تابع FLOOR چیست؟
تابع FLOOR برای گرد کردن یه مقدار غیرصحیح به پایین ترین عدد صحیح قبلی استفاده میشود.
مثال:
FLOOR(6.7)و برمیگرداند 6 .
14. آیا میتوان قفلها را در پایگاه داده بررسی کرد؟ اگر بله، چگونه میتوان این بررسی را انجام داد؟
بله میتوان قفلها را در پایگاه داده بررسی کرد. این کار از طریق رویه ذخیره شده داخلی به نام sp_lock قابل انجام است.
15. کاربرد تابع SIGN چیست؟
تابع SIGN برای تعیین این موضوع به کار میرود که عدد مشخص شده مثبت، منفی یا صفر است. در جواب به سوال ضروری SQL Server، این تابع یکی از مقادیر +1، -1 یا 0 را باز میگرداند.
مثال:
SIGN(-35) returns -116. Trigger چیست؟
Trigger ها برای اجرای مجموعه ای از دستورات SQL زمانی که عملیات insert یا update یا delete روی یک جدول انجام میشود، استفاده میشوند. Trigger ها به صورت خودکار هنگام تغییر داده اجرا میشوند.
این اجرا میتواند به صورت خودکار در عملیات insert ،delete و update انجام شود. از آنجا که درک نحوه عملکرد Trigger ها و کاربرد درست آنها یک سوال ضروری SQL Server در مصاحبه ها و آزمون های فنی است، یادگیری آن اهمیت بالایی دارد.
17. انواع Trigger ها کدامند؟
پاسخ به این سوال ضروری SQL Server به این گونه است که چهار نوع Trigger وجود دارد که عبارتند از:
- Insert
- Delete
- Update
- Instead of
18. ستون IDENTITY در دستورات Insert چیست؟
ستون IDENTITY در ستون های جدول استفاده میشود تا آن ستون به صورت عدد افزایشی خودکار یا کلید جانشین (surrogate key) عمل کند.
19. Bulkcopy در SQL چیست؟
Bulkcopy ابزاری است که برای کپی کردن حجم زیادی از داده ها از جدول ها استفاده میشود. این ابزار برای بارگذاری حجم بالایی از داده در SQL Server به کار میرود. آشنایی با نحوه استفاده از Bulkcopy یک سوال ضروری SQL Server در مصاحبه های فنی و آزمون های تخصصی مدیریت پایگاه داده محسوب میشود.
20. چه کوئری برای دریافت لیست Trigger ها در یک پایگاه داده استفاده میشود؟
کوئری برای دریافت لیست Trigger ها در پایگاه داده
Select * from sys.objects where type='tr'21. تفاوت بین UNION و UNION ALL چیست؟
در پاسخ به این سوال ضروری SQL Server، کاربرد هر دو دستور را بررسی میکنیم:
UNION: برای انتخاب اطلاعات مرتبط از دو جدول، از دستور UNION استفاده میشود. این دستور عملکردی مشابه JOIN دارد.
UNION ALL: دستور UNION ALL مشابه UNION است با این تفاوت که تمام مقادیر را انتخاب میکند. این دستور ردیف های تکراری را حذف نمیکند بلکه تمام ردیف ها را از تمام جدول ها بازیابی میکند.
22. جدول های موقت عمومی چگونه نمایش داده میشوند و دامنه آنها چیست؟
جدول های موقت عمومی با پیشوند ## قبل از نام جدول نمایش داده میشوند. دامنه آنها خارج از نشست است، در حالی که جدول های موقت محلی فقط درون همان نشست معتبر هستند. شناسه نشست (Session ID) را میتوان با استفاده از @@SPID به دست آورد.
درک تفاوت بین این دو نوع جدول موقت و نحوه استفاده از آنها یک سوال ضروری SQL Server در مصاحبه ها و سناریوهای واقعی مدیریتی است.
23. تفاوت بین Stored Procedure و Dynamic SQL چیست؟
Stored Procedure مجموعه ای از دستورات است که به صورت کامپایل شده در پایگاه داده ذخیره میشود. Dynamic SQL مجموعه ای از دستورات است که به صورت پویا در زمان اجرا ساخته میشود، در پایگاه داده ذخیره نمیشود و فقط در زمان اجرا، اجرا میشود.
24. Collation چیست؟
Collation برای تعیین ترتیب مرتب سازی در یک جدول تعریف میشود. در ادامه پاسخ به این سوال ضروری SQL Server، باید گفت سه نوع ترتیب مرتب سازی وجود دارد:
- Case Sensitive
- Case Insensitive
- Binary
25. چگونه میتوان تعداد رکوردهای موجود در یک جدول را به دست آورد؟
در پاسخ به این سوال ضروری SQL Server، کوئری های زیر برای به دست آوردن تعداد رکوردهای یک جدول قابل استفاده هستند
Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<226. دستور مورد استفاده برای دریافت نسخه SQL Server چیست؟
Select SERVERPROPERTY('productversion')برای دریافت نسخه SQL Server استفاده میشود.
27. دستور UPDATE_STATISTICS چیست؟
دستور UPDATE_STATISTICS برای بهروزرسانی ایندکسها در جدول ها زمانی که حجم زیادی از حذف، تغییر یا بارگذاری داده (bulk copy) اتفاق افتاده باشد، استفاده میشود. درک زمان مناسب اجرای این دستور یک سوال ضروری SQL Server برای حفظ کارایی کوئری ها و عملکرد کلی پایگاه داده است.
28. کاربرد دستور SET NOCOUNT ON/OFF چیست؟
به صورت پیشفرض NOCOUNT برابر با OFF است و تعداد رکوردهای تحت تأثیر هنگام اجرای هر دستور را نمایش میدهد. اگر کاربر نخواهد تعداد رکوردهای تأثیرگذار نمایش داده شود، میتواند بهصورت صریح آن را برابر با ON قرار دهد (SET NOCOUNT ON).
29. کدام جدول SQL Server برای نگهداری اسکریپت رویههای ذخیره شده استفاده میشود؟
در پاسخ به این سوال ضروری SQL Server، جدول Sys.SQL_Modules برای ذخیره اسکریپت رویههای ذخیره شده (Stored Procedures) استفاده میشود. نام رویه در جدولی به نام Sys.Procedures ذخیره میشود.
30. Magic Table ها در SQL Server چیستند؟
در طول عملیات DML مانند Insert، Delete و Update، SQL Server جدولهایی موقت به نام Magic Tables ایجاد میکند تا مقادیر را در طول این عملیات نگه دارد. این جدولها درون Trigger ها برای مدیریت تراکنشهای داده استفاده میشوند.
31. تفاوت بین SUBSTR و CHARINDEX در SQL Server چیست؟
تابع SUBSTR و CHARINDEX از سوال ضروری SQL Server هستند که کاربردهای متفاوتی دارند. اما تابع CHARINDEX موقعیت یک کاراکتر یا رشته خاص را درون رشته ورودی مشخص میکند.
SUBSTRING('Smiley',1,3)نتیجه را به صورت Smi برمیگرداند.
CHARINDEX('i', 'Smiley',1)عدد 3 را به عنوان نتیجه برمیگرداند زیرا I در موقعیت سوم رشته قرار دارد.
32. چگونه میتوان یک Login ایجاد کرد؟
میتوانید از دستور زیر برای ایجاد یک Login استفاده کنید:
CREATE LOGIN MyLogin WITH PASSWORD = '123';33. عملگر ISNULL() چیست؟
تابع ISNULL یک سوال ضروری SQL Server است که برای بررسی اینکه آیا مقدار داده شده NULL است یا نه استفاده میشود. همچنین این تابع امکان جایگزینی یک مقدار به جای NULL را فراهم میکند.
34. کاربرد FOR Clause چیست؟
عبارت FOR عمدتاً برای گزینه های XML و مرورگر استفاده میشود. این عبارت برای نمایش نتایج کوئری به صورت XML یا در مرورگر به کار میرود.
35. حداکثر تعداد ایندکسها در هر جدول چقدر است؟
یک سوال ضروری SQL Server اینه که در اس کیو ال میتوان حداکثر 1000 ایندکس برای هر جدول استفاده کرد. این شامل 1 ایندکس خوشهای (Clustered Index) و 999 ایندکس غیرخوشهای (Non-clustered Index) میباشد.
36. تفاوت بین COMMIT و ROLLBACK چیست؟
تمام دستوراتی که بین BEGIN و COMMIT قرار میگیرند، پس از اجرای COMMIT به صورت دائمی در پایگاه داده ذخیره میشوند. در حالی که تمام دستوراتی که بین BEGIN و ROLLBACK قرار میگیرند، هنگام اجرای ROLLBACK به حالت قبل از آن بازگردانده میشوند.
37. تفاوت بین انواع varchar و nvarchar چیست؟
یک سوال ضروری SQL Server درباره تفاوت varchar و nvarchar هست که هر دو مشابه هستند اما تفاوت اصلی این است که nvarchar برای ذخیره کاراکترهای Unicode در زبانهای مختلف به کار میرود و در مقایسه با varchar فضای بیشتری اشغال میکند.
38. کاربرد @@SPID چیست؟
دستور @@SPID شناسه نشست (Session ID) مربوط به فرآیند کاربر جاری را برمیگرداند.
39. دستور مورد استفاده برای کامپایل مجدد Stored Procedure در زمان اجرا چیست؟
در پاسخ به این سوال ضروری SQL Server میتوان Stored Procedure را با استفاده از کلمه کلیدی RECOMPILE در زمان اجرا مجدداً کامپایل کرد.
مثال:
Exe <SPName> WITH RECOMPILEیا میتوان WITH RECOMPILE را مستقیماً در تعریف خود Stored Procedure قرار داد.
40. چگونه میتوان ردیف های تکراری را در SQL Server حذف کرد؟
ردیف های تکراری را میتوان با استفاده از CTE و قابلیت ROW_NUMBER در SQL Server حذف کرد.
41. نام کاربری و رمز عبور کاربران در SQL Server در کجا ذخیره میشود؟
در پاسخ به این سوال ضروری SQL Server نام های کاربری و رمزهای عبور در جداول سیستمی sys.server_principals و sys.sql_logins ذخیره میشوند. البته رمز عبورها به صورت متن ساده ذخیره نمیشوند.
42. تفاوت بین GETDATE و SYSDATETIME چیست؟
هر دو تابع عملکرد مشابهی دارند، اما GETDATE زمان را تا میلی ثانیه برمیگرداند، در حالی که SYSDATETIME دقت را تا نانوثانیه فراهم میکند. SYSDATETIME دقیقتر از GETDATE است.
43. چگونه میتوان داده را از یک جدول به جدول دیگر کپی کرد؟
برای پاسخ به این سوال ضروری SQL Server باید بهتون بگیم که از دستور زیر استفاده میکنیم:
INSERT INTO SELECT
این دستور برای وارد کردن داده به یک جدول موجود استفاده میشود.
SELECT INTO
این دستور برای ایجاد یک جدول جدید به همراه ساختار و کپی داده از یک جدول موجود به کار میرود.
44. TABLESAMPLE چیست؟
TABLESAMPLE برای استخراج تصادفی نمونه ای از ردیف ها استفاده میشود که برای یک کاربرد خاص ضروری هستند. این قابلیت، یک سوال ضروری SQL Server در زمینه بهینه سازی و تحلیل داده است. ردیف های نمونه بر اساس درصدی از کل ردیف ها انتخاب میشوند و میتوانند در آزمایش ها یا تحلیل های سریع مفید باشند.
45. کدام دستور برای پیام های خطای تعریف شده توسط کاربر استفاده میشود؟
دستور RAISEERROR برای تولید و شروع پردازش خطا در یک نشست مشخص استفاده میشود. این پیام های خطای تعریف شده توسط کاربر در جدول sys.messages ذخیره میشوند.
46. منظور از نوع داده XML چیست؟
نوع داده XML برای ذخیره اسناد XML در پایگاه داده SQL Server به کار میرود. ستون ها و متغیرها میتوانند ایجاد شده و نمونه های XML را در پایگاه داده ذخیره کنند. نحوه استفاده و مزایای نوع داده XML یک سوال ضروری SQL Server محسوب میشود، به ویژه در پروژه هایی که با داده های ساخت یافته و نیمه ساخت یافته سر و کار دارند.
47. CDC چیست؟
CDC مخفف Change Data Capture است که برای شناسایی و ثبت داده هایی که اخیراً تغییر کردهاند استفاده میشود. این قابلیت از SQL Server 2008 در دسترس است.
48. SQL Injection چیست؟
SQL Injection یک حمله توسط کاربران مخرب است که در آن کد مخرب میتواند درون رشتههایی وارد شود که به یک نمونه از SQL Server برای تجزیه و اجرا ارسال میشوند چون SQL Server تمام کوئریهای نحوی معتبر را اجرا میکند، تمام دستورات باید از نظر آسیبپذیری بررسی شوند. آشنایی با نحوه پیشگیری از SQL Injection یک سوال ضروری SQL Server در مباحث امنیتی است که هر توسعه دهنده یا DBA باید پاسخ آن را بداند.
برای مطالعه بیشتر در زمینه آشنایی با یکی از رایج ترین تهدیدات امنیتی در پایگاه داده ها، پیشنهاد میشه مقاله «SQL Injection چیست؟» رو مطالعه کنید.
حتی پارامترها نیز میتوانند توسط مهاجمان ماهر و با تجربه دستکاری شوند.
49. روش های محافظت در برابر حملات SQL Injection چیست؟
روش های زیر برای محافظت در برابر حملات SQL Injection استفاده میشوند:
- استفاده از پارامترها برای Stored Procedure ها
- فیلتر کردن ورودی پارامترها
- استفاده از مجموعه پارامترها در Dynamic SQL
- استفاده از کاراکترهای escape در عبارت like
50. Filtered Index چیست؟
Filtered Index برای فیلتر کردن بخشی از ردیفهای یک جدول استفاده میشود تا عملکرد کوئری را بهبود بخشد، نگهداری ایندکس را سادهتر کند و هزینه ذخیرهسازی ایندکس را کاهش دهد. زمانی که ایندکس با استفاده از عبارت WHERE ایجاد میشود، به آن Filtered Index گفته میشود. شناخت موارد استفاده از Filtered Index یک سوال ضروری SQL Server برای بهینه سازی عملکرد پایگاه داده در سناریوهای خاص است.
توی این مقاله سعی کردیم ۵۰ سوال ضروری SQL Server 2025 رو همراه با جواب های کامل و قابل فهم براتون آماده کنیم. چه برای آمادگی مصاحبه شغلی دنبال این سوالا بودین، چه برای بالا بردن مهارت هاتون، امیدواریم که این مطلب براتون مفید بوده باشه و یه قدم به حرفه ای تر شدن نزدیکتر شده باشین.
اگه سوال یا نظری دارین، خوشحال میشیم توی بخش نظرات باهامون درمیون بذارین.







