2013-08-31 15 views
0

在ssms中,在select中指定列名稱之前,智能感知不會啓動,直到您在from子句中指定表名爲止。解決方法:select子句中的列規範在ssms中沒有智能感知,直到您指定表

這是有道理的cuz ssms無法讀取您的想法。

但是,這是一個痛苦的脖子,因爲我們在select子句之前寫入select子句。

我不能完美地描述我在找什麼,但最理想的是能夠在select子句之前指定from子句。

我不希望數據庫中的每一列都顯示在列表中。

人們通常會寫一條sql語句的方式有些奇怪和笨拙,select子句在'from'子句之前出現,因此剝奪了intellisense的優勢,除非我們在從'表名」。只是覺得奇怪和煩人,必須有更好的方法

+0

那麼你想要什麼?數據庫中的每一列都要從頭開始列表?如果你在40個不同的表中有'EmployeeID'會怎麼樣?如果你甚至不知道表中列出了哪些列,那該怎麼辦?這個要求對我來說根本沒有任何意義。只需鍵入'SELECT FROM dbo.tablename',然後返回列列表。 –

+0

我不希望數據庫中的每一列都顯示在列表中。我只是指出,人們通常寫一個sql語句的方式有點怪異和笨拙,select列從前列出現,從而剝奪了我們的智能感知優勢,除非我們按照您所說的返回列列表從'tablename'寫入之後。只是感到奇怪和煩人,並且必須有一個更好的方式 –

+1

嗯坦率地說,SQL語言的構建方式在IntelliSense甚至是一個概念之前就已經決定了幾十年。沒有「更好的方法」,除非你想爲T-SQL編寫自己的解析器,解析類似'FROM dbo.table SELECT ...'的東西。我同意你的看法,那將是一種更自然的編寫查詢的方式,但這並不能實現。 –

回答

1

你不能改變SQL Server分析SELECT語句的方式。但是,你可以改變你的寫法。只要寫:

FROM dbo.tablename 

然後將光標以上這一點,鍵入SELECT,然後你將有智能感知。

另一個真正哈克和壞的想法是:

;WITH x AS (SELECT * FROM dbo.tablename) 
SELECT ... FROM x; 

但是,這是真正的壞消息你還是要輸入所有的這些東西面前Management Studio中可以瞭解你的心思。

對不起,但你正在尋找一個不存在的答案。

+0

大聲笑。 'select'子句之前的'from'子句就是我們在c#linq中所擁有的。這種可惜我們在ssms中並不一樣。 –

+0

@JayJayJay SELECT語句中的子句順序與SSMS無關。 C#LINQ爲你重寫你的查詢--SSMS不這麼做。他們都發送給服務器的查詢仍然必須符合標準,而不是對您來說會稍微方便一些的格式。 –

相關問題