عنوان:

‫چرا IntelliSense در SQL Management Studio کار نمی‌کند؟


نویسنده: هادی مزارعی
تاریخ: ۱۴۰۴/۰۹/۱۳ ۲۳:۲۱
آدرس: www.dntips.ir
چرا مطابق روال همیشه IntelliSense در SQL Management Studio بدرستی کار نمی‌کند (شاید هم اصلا کار نمی‌کنه) و همیشه باید دنبال افزونه‌هایی در خصوص SQL Complete بود (از جمله SQL Prompt و dbForge SQL Complete)؟ ابزارهای موجود برای نسخه 22 بطور کلی جواب نمیدن (حداقل برای من). تنظیمات داخلی SSMS چندین بار بررسی شدند و Local Cache هم چندین بار Refresh شد ولی متاسفانه کار نمی‌کند. حتی فشردن Ctr+Space برای تکمیل یک عبارت کلیدی نیز کاری انجام نمی‌دهد.

شما چه راه کاری پیشنهاد می‌دهید و از چه ابزاری استفاده می‌کنید؟

نظرات

  • وحید نصیری در ۱۴۰۴/۰۹/۱۳ ۲۳:۵۶
    - برید به قسمت Tools > Options > Text Editor > Transact-SQL > IntelliSense.
    مطمئن شوید که گزینه‌ی Enable IntelliSense تیک خورده.
    + در همین پنجره، مطمئن شوید که Caching برای تکمیل عبارت‌های کلیدی، توابع و ... فعال باشد.
    + در بخش General، گزینه‌های Auto List Members و Parameter Info را فعال کنید.
    Tools > Options > Text Editor > All Languages > General > Auto List Members
    بعد از این تغییرات، SSMS را کامل ببندید و دوباره باز کنید.

    - IntelliSense Cache را کامل و نه فقط Refresh، پاک کنید. در مسیر زیر پوشه‌های cache را پاک کن:
    %LOCALAPPDATA%\Microsoft\SQL Server Management Studio
    پوشه‌هایی مثل: Cache و SqlWorkbench. بعد SSMS را کامل ببند و دوباره باز کن.

    - IntelliSense در SSMS اگر دیتابیس روی compatibility قدیمی باشد (مثلاً 100 یا 110)، دچار مشکل می‌شود. بنابراین Database Compatibility Level را چک کن.
    SELECT name, compatibility_level 
    FROM sys.databases
    اگر زیر 140 بود، بهتره تغییرش بدی.
    ALTER DATABASE MyDB SET COMPATIBILITY_LEVEL = 150;
    (یا به 160 برای SQL 2022)
    + بررسی مجوزها: از اکانتی استفاده کنید که حداقل مجوز VIEW DATABASE STATE و دسترسی کامل به Schemaهای مورد نظر را داشته باشد.

    + یک راه‌حل جایگزین محبوب: مهاجرت به Azure Data Studio است. Azure Data Studio، ابزار رایگان مایکروسافت، جایگزین SSMS با IntelliSense بهتر و مدرن‌تر. برای SQL Server ۲۰۲۲ عالی کار می‌کند و رابط کاربریش شبیه VS Code است و افزونه‌های زیادی دارد.
    • هادی مزارعی در ۱۴۰۴/۰۹/۱۴ ۰۱:۱۲
      در حال حاضر باید از Azure Data Studio استفاده کنم. اما در محیط Azure Studio زمانیکه عبارت symmetric را بعد از create تایپ میکنم (جهت ایجاد کلید) شناسایی نمیکنه. Extension مناسب هم پیدا نکردم.
      • وحید نصیری در ۱۴۰۴/۰۹/۱۴ ۰۸:۴۸
        - از چه نگارشی از SQL Server استفاده می‌کنید؟ CREATE SYMMETRIC KEY در نگارش‌های قدیمی‌تر پشتیبانی نمی‌شود (+ COMPATIBILITY_LEVEL که عنوان شد).
        + بله. IntelliSense در ADS از موتور Language Service قدیمی SQL استفاده می‌کند که برای crypto objects آپدیت نشده و برای syntaxهای پیشرفته‌ی SQL Server کامل نیست. اگر کار شما زیاد شامل encryption، asymmetric keys و امثال این‌هاست، Azure Data Studio مناسب نیست و SSMS بهترین گزینه است (نسخه‌های 19 یا 18).
        • هادی مزارعی در ۱۴۰۴/۰۹/۱۴ ۱۱:۴۲
          • برنامه SSMS نسخه 22
          • برنامه ADS نسخه 1.41
          • برنامه SQL Server نسخه 2025

          البته با توجه به موضوع بازنشتگی ADS، برنامه VS Code را نصب کردم و بعد از اضافه کردن افزونه MSSQL، ویژگی مشابه‌ی همان SSMS رو در اختیار میذاره. دلیل استفاده از Intellisense نمایش عبارات یک دستور جهت تکمیل آن است و این موضوع را فقط در نسخه قدیمی dbForge دیدم، به نظرم به غیر از نسخه‌ی بروزرسانی شده‌ی dbForge Complete به نتیجه مطلوب نرسم.