🔰 خواندن فایل Excel در SQL Server با استفاده از OPENROWSET
سلام دوستان عزیز 👋
همون‌طور که می‌دونید، روش‌های مختلفی برای خواندن فایل‌های Excel در SQL Server وجود داره.
در این آموزش قراره از روش محبوب و کاربردی OPENROWSET استفاده کنیم.
برای این کار چند مرحله‌ی ضروری رو باید انجام بدیم:

✅ مواد لازم:


  • یک دیتابیس (در مثال ما: [DB_Ejraeiyaat2025])
  • فایل Excel
  • دسترسی به SQL Server با سطح کافی
  • نصب بودن Microsoft Access Database Engine (نسخه ACE)


🔧 پیش‌نیازهای مهم:

1. فعال‌سازی قابلیت Ad Hoc Distributed Queries:

برای اینکه SQL Server اجازه استفاده از OPENROWSET رو بده، باید تنظیمات زیر رو اعمال کنیم:


EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;


2. نصب Microsoft Access Database Engine (ACE):

روی سرور SQL باید نسخه‌ی مناسب از Microsoft Access Database Engine (مثلاً 2016 یا 2010) نصب باشه تا SQL Server بتونه فایل‌های Excel رو بخونه.

3. بررسی دسترسی سرویس SQL Server:

مطمئن بشید که سرویس SQL Server دسترسی لازم برای ساخت یک Instance از Excel داره.
دو بخش مهم در این قسمت وجود داره:

⚙️ تنظیمات Provider در SSMS:

مسیر زیر رو در SQL Server Management Studio دنبال کن:


Object Explorer → Server Objects → Linked Servers → Providers → Microsoft.ACE.OLEDB.12.0 (یا 16.0) → راست‌کلیک → Properties


حالا تیک گزینه‌های زیر رو فعال کن:

  • ✅ Allow inprocess
  • ✅ Dynamic parameters

یا با اجرای دستورات زیر در SQL این تنظیمات رو فعال کن:

EXEC sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.16.0', N'AllowInProcess', 1;
EXEC sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.16.0', N'DynamicParameters', 1;

🎯 در ادامه‌ی این آموزش، نحوه‌ی نوشتن کوئری OPENROWSET و بارگذاری داده‌ها از Excel رو توضیح می‌دم.

اگه سوالی دارید یا تجربه‌ای از این روش دارین، خوشحال می‌شم نظراتتون رو کامنت کنین و در صورت نیاز کد را ارتقا بدید.