疑難排解 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 執行個體的連接,完成清單可能會停止運作。請重新連接到該執行個體。