共用方式為


疑難排解 Transact-SQL IntelliSense

在某些情況下,IntelliSense 選項的運作可能會不符合您的預期。

線上和離線可用性

IntelliSense「列出成員」、「自動完成文字」、「參數資訊」和「快速諮詢」只能在特定條件下用於 Transact-SQL 編輯器。如需這些功能的詳細資訊,請參閱 Transact-SQL IntelliSense 概觀

有兩個主要因素決定這些功能的可用性:

  • **與 SQL Server 執行個體的連接:**連接至 SQL Server 執行個體時,IntelliSense 可供使用。在此情況下,IntelliSense 中繼資料衍生自連接,即使所編輯的檔案與資料庫專案相關聯也是一樣。

  • **與資料庫專案的關聯:**在 Transact-SQL 編輯器中所編輯的檔案與資料庫專案相關聯時,IntelliSense 可供使用。在此情況下,如果未連接至 SQL Server 執行個體,IntelliSense 中繼資料會衍生自與專案關聯的資料庫物件。

下表描述這些因素對列出成員、自動完成文字、參數資訊和快速諮詢功能可用性的影響。

連接至 SQL Server 執行個體?

與資料庫專案相關聯?

是否可用

注意事項

以連接為基礎的 IntelliSense

以連接為基礎的 IntelliSense

以專案為基礎的 IntelliSense

當 Transact-SQL 編輯器連接至 SQL Server 執行個體時,IntelliSense 可供使用,而且會顯示與該資料庫連接關聯的物件。當 Transact-SQL 編輯器未連接至 SQL Server 執行個體時,IntelliSense 資訊來自與該資料庫連接關聯的物件。如果 Transact-SQL 編輯器未連接至 SQL Server 執行個體且未與資料庫專案相關聯,便無法使用 IntelliSense。

IntelliSense 剖析功能和 Transact-SQL 程式碼片段功能永遠可供使用,即使編輯器未與專案相關聯或未連接至 SQL Server 執行個體也是一樣。

影響 IntelliSense 的其他條件

下列條件可能會影響 IntelliSense 的行為:

  • 游標上面有程式碼發生錯誤。

    如果在插入點位置之上,有不完整的陳述式或其他編碼錯誤,IntelliSense 可能無法剖析程式碼元素,因此,將無法運作。您可以將適當的程式碼註解化來重新啟用 IntelliSense。

  • 插入點位於程式碼註解內。

    如果插入點在來源檔案內的註解中,便無法使用 IntelliSense 選項。

  • 插入點位於字串常值內。

    如果插入點在括住字串常值的引號內,便無法使用 IntelliSense 選項,例如:

    WHERE FirstName LIKE 'Patri%|'

  • 功能已關閉。

    依預設,許多 IntelliSense 功能都會自動運作,但您可以停用任何功能。

即使已停用自動完成文字的功能,您也可以使用其他 IntelliSense 功能。如需詳細資訊,請參閱Modifying IntelliSense Options

Transact-SQL 編輯器考量因素

下列問題適用於 Transact-SQL 編輯器:

  • Transact-SQL 編輯器中的 IntelliSense 功能不支援所有 Transact-SQL 語法元素。參數說明不支援某些物件中的參數,例如擴充預存程序。如需詳細資訊,請參閱 IntelliSense 所支援的 Transact-SQL 語法

  • 當 Transact-SQL 編輯器連接至 SQL Server 2008 之前的 SQL Server Database Engine 版本時,無法使用 IntelliSense。

  • 當 Transact-SQL 編輯器未與專案相關聯,而且 Transact-SQL 編輯器未連接至資料庫引擎時,Transact-SQL 編輯器中無法使用 IntelliSense。

  • 當 SQLCMD 模式開啟時,Transact-SQL 編輯器中會關閉 IntelliSense。

  • IntelliSense 功能不包含您的編輯器視窗連接到資料庫後,由另一個連接所建立的資料庫物件。您可以選擇三種機制中的一種,為您的編輯器視窗重新整理物件的快取:

  • 連接至 SQL Server 執行個體時,如果您或其他使用者在 Transact-SQL 編輯工作階段期間對該執行個體執行 CREATE、ALTER 或 DROP 命令,IntelliSense 快取不會反映所做的變更。若要更新 IntelliSense 快取,請依序選取 [編輯] 功能表、[IntelliSense] 和[重新整理本機快取]。 

  • 使用 CTRL+K 鍵盤快速鍵,後面接著 CTRL+R。

  • 完成清單不包含您沒有權限的資料庫物件。IntelliSense 旗標會參考您沒有權限的物件。例如,如果您開啟其他使用者撰寫的指令碼,對於該使用者擁有權限而您沒有權限之物件的任何參考,都會標示為不正確。

  • 如果您喪失與 SQL Server 執行個體的連接,完成清單可能會停止運作。請重新連接到該執行個體。

請參閱

其他資源

Transact-SQL IntelliSense 概觀

使用 Transact-SQL 分隔符號比對

使用 Transact-SQL 程式碼片段

IntelliSense 所支援的 Transact-SQL 語法