2017 年 6 月

第 32 卷,第 6 期

本文章是由機器翻譯。

資料點 - Visual Studio Code: 使用 MSSQL 延伸模組建立資料庫整合式開發環境 (IDE)

Julie Lerman | 2017 年 6 月

Julie Lerman雖然 Visual Studio 仍是超耐重.NET 開發我移至 IDE,我已落後神魂顛倒 Visual Studio 程式碼 (VS 程式碼)、 是否使用 C# 或 JavaScript 或節點和我在處理視窗或 macOS。當然,還有許多其他語言和架構支援的 VS Code 和其無數的延伸模組,但這些是我目前的工具組。我不是單獨在我愛 VS 程式碼。在 Visual Studio 2017 年 3 月 2017年中啟動,Microsoft 宣佈 VS 程式碼有 1.3 百萬個作用中的每月使用者。很棒的是,當任何跨平台的工具,每個小組成員可以挑選他們最愛的作業系統,但所有仍然可以使用相同的程式碼撰寫工具。

並沒有資料,一定會資料相關。我所花費的年份,而只能使用 SQL Server 和 Windows 應用程式程式碼撰寫年。但這是在過去幾年,我已展開我 horizons — 不只使用新的 IDE (VS Code),但也有新的資料庫和新平台 (如我輸入我 MacBook Pro 上)。

VS Code 到我 foray 開始我 wanderings 一部分到 Node.js,您已在此一資料行中見證。原先在 Windows 上。但是,因為 VS Code 是跨平台 (使用電子束所建置),所以我最後會發現自己來回、 相同的程式碼,有時在 Windows 中,有時在 macOS 與共同分母為 GitHub 中的處理。由於 C# 擴充功能和跨平台.NET Core 性質,我最後達到超過兩個環境中寫入.NET Core 應用程式的 EF 核心 Node.js。在 Visual Studio 中,當我依賴內建的 SQL Server Data Tools 和 SQL CE/SQLite 工具箱延伸模組來瀏覽大部分的 [我的應用程式所建立的資料。但使用 VS 程式碼,需要外部瀏覽資料。使用 Windows 和 super 輕量型 VS 程式碼時,它永遠不會認為右開啟 SQL Server Management Studio,也就是輕量型以外。對於其他資料庫,不論是否在我 Windows 或 Mac] 方塊中,我也一直用 JetBrains DataGrip (jetbrains.com/datagrip),支援時光靠資料庫的跨平台的資料庫工具。

但 VS Code 擴充功能的 universe 大小已經擴大 (如我撰寫此晚期年 4 月 2017年 3000 不只是),因為許多與資料存放區互動的擴充功能有的資料表。我已經已使用過的兩個是 mssql 延伸模組 (bit.ly/2gb2ICf) 從 SQL Server 團隊和 SQLite 和 PostgreSQL vscode 資料庫延伸模組 (bit.ly/2mh8nYF)。這些可讓您撰寫及執行您資料庫的 SQL。您可以看到兩者在我 Pluralsight 課程中,示範 「 Entity Framework Core: 取得已啟動 」。 有其他相關的資料延伸模組,以及 — 例如,若要互動 (也會從 Microsoft) 的 Azure 資料湖、 Redis 和 SalesForce 資料。其中有些是仍在預覽中,包括 mssql 副檔名。

在本文中,我將示範一些使用 mssql 擴充功能的基本概念。原先我計劃將撰寫 mssql 和 vscode 資料庫的相關資訊,但 mssql 因此豐富的功能,我有很有趣,探索它,輕鬆地填滿我配額的這個資料行的文字。無論您是在 Windows、 macOS 或 Linux 使用 mssql 造成任何差異。

Mssql 延伸模組可讓您與各種不同的 SQL Server 資料庫互動︰ Microsoft SQL Server、 Azure SQL Database 和 SQL 資料倉儲。當我剛好場合 MacBook,我會將連接到外部的 SQL Server。您可能注意 SQL Server 執行 Linux 上 — 在於不令人驚訝嗎? 這表示您無法備妥的執行 SQL Server 的 Docker 容器。我不會執行,這個發行項,但我所撰寫的部落格文章,了解,您可以在閱讀bit.ly/2qaev9r。我將會做什麼,不過,是連接到雲端的 Azure SQL Server 資料庫。這是功能強大的提醒您不需要 Windows 開發人員或系統管理員或 C# 開發人員可以充分利用 SQL Server。您可以在 Azure 入口網站進行管理,並從任何類型的應用程式連接到它。因此,假設您的應用程式是 PHP PHP 延伸模組使用 VS Code,且在 Azure 上的 SQL Server 資料庫指。 

我已利用免費的 Azure 帳戶和隨附的 Visual Studio 訂閱建立 Azure SQL database AdventureWorks 範例為基礎的信用額度。若要這樣做的文件位於bit.ly/2o2IDTy

回 VS 程式碼中,您可以按一下 VS 程式碼活動列中的擴充功能圖示、 mssql 篩選,然後按一下其 [安裝] 按鈕,以安裝 mssql 延伸模組。您將會提示您重新載入 VS Code 時好時,但請注意,它將會延遲安裝延伸模組的一部分,直到您使用其中一個它的命令。請注意,macOS,您將需要安裝 OpenSSL。請檢查 mssql 文件連結 (稍早所提供),如需詳細資訊。

除了已安裝的查詢執行引擎,mssql 會置於 VS Code 命令選擇區時光靠命令。合理啟動藉由連接到您的資料庫,雖然其他函式將會提示您連接,如果您還沒有這麼做。

使用 f1 鍵 (或 ctrl 鍵或命令 + Shift + P 如果您有一個沒有函式金鑰這些短篇鍵盤) 開啟的調色盤,並輸入 MS SQL 做為篩選條件的所有 mssql 命令。如果您沒有其他命令提供以 SQL 關鍵字的擴充功能,只要 SQL 就可以做到。我喜歡,您甚至可以取得來說明使用快速入門指南命令檔。您可以也儲存 [不同的連線,然後以管理連線設定檔功能輕鬆地連接。

最簡單的方式與 mssql 互動通常是因為開啟進行編輯,然後確保 VS Code 知道您正在編輯 SQL 的檔案。您可以執行這項操作,無論您擁有的資料夾或專案開啟新的查詢命令的方式。會建立 SQLQuery.sql 檔案和 sql 的延伸模組會導致切換至 mssql 編輯器的 VS 程式碼。目前編輯器加註在右下角的 VS Code 和此變更檔案延伸模組為基礎,讓您適當的 IntelliSense 和延伸模組所提供的其他相關功能。您可以按一下顯示視需要變更它的內容。Mssql 編輯器會不只提供您撰寫 TSQL 的說明,它也知道如何執行查詢,並執行其他延伸模組所定義的工作。

在編輯器中,選取 MS SQL 開啟 SQL 檔案︰ 從連接命令選擇區將會顯示您已建立並可讓您建立一個新現有的連線設定檔的清單。選取建立連線設定檔,您就會接到提示的連接字串的每個索引鍵的項目。例如,第一個出現提示要求伺服器名稱,如中所示圖 1。我的 SQL Azure 資料庫是在名為 thedatafarmsqlerver.database.windows.net,所以我要輸入的伺服器上。

連接到 SQL Database 以 mssql 延伸模組
圖 1 連線到 SQL Database 以 mssql 延伸模組

接下來,系統會提示您輸入資料庫名稱、 登入和密碼,然後選擇性的設定檔名稱。方式,管理連線設定檔也會導致您到此端點如有建立功能表選項。

填入的連接資訊並已成功連接之後,會取得與設定檔中儲存設定檔。0.3 的版本,如果連接失敗,設定檔將不會取得儲存;但是,該經驗會變更投影片上。您可以查看儲存的設定檔,移至 [喜好設定和設定從 VS Code 功能表或透過 Ctrl 或命令 +,(逗號) 按鍵組合。連線設定檔的範例如下︰

"mssql.connections": [
  {
    "authenticationType": "SqlLogin",
    "server": "thedatafarmsqlserver.database.windows.net",
    "database": "AdventureWorksSample",
    "user": "me",
    "password": "mypassword",
    "savePassword": true,
    "profileName": "AzureAWSample"}
  }
]

使用的設定檔儲存在設定中,您有選取 AzureAWSample 或其他預存的設定檔,當您想要連接的選項。

一旦連接之後,您可以開始撰寫和執行 TSQL。若要這樣做,最簡單的方式是已在編輯器中開啟 SQL 副檔名的檔案。如前所述,這會強制 SQL 編輯器功能開始作用,以及其棒的功能之一是內建的 TSQL 程式碼片段。

開始在 [編輯器] 視窗中輸入 sql 和 IntelliSense 會顯示內建的程式碼片段的清單中所示圖 2

Mssql 延伸模組所提供的 TSQL 程式碼片段
圖 2 TSQL mssql 延伸模組所提供的程式碼片段

您可以查看這不限於直接查詢現有資料 — mssql 會執行任何 (有效及允許) TSQL。我要列出的資料庫或資料表和檢視從選取的資料庫,以確認我已連接到正確的資料庫,並且 ListTablesAndViews 片段適合用來的。一般來說,我必須詢問 Dr。協助我進行 TSQL 像這樣,好讓我額外感謝這個程式碼片段的 GoogleBing。

按住 Ctrl 或命令 + Shift + E 會執行命令。您也可以選取的文字,並以滑鼠右鍵按一下內容功能表中,其中包含執行選項。

結果窗格會開啟類似的回應圖 3

結構描述查詢的結果
圖 3 查詢結果的結構描述

右上方,請注意有兩個小圖示。第一個可讓您將結果儲存成 CSV 文字檔案。第二個是用於儲存結果為 JSON。讓我們取得客戶資料的查詢,請參閱什麼結果看起來像,然後將它們儲存在 JSON。與前面我的資料表清單,我可以開始輸入我的查詢,為圖 4所示,IntelliSense 是否已盡力而為入的資料庫結構描述的知識。

IntelliSense 會讀取結構描述與協助建置 TSQL
圖 4 IntelliSense 讀取結構描述與協助建置 TSQL

我已修改我從 SalesLT.Customer 取得三個資料行的 select 陳述式。然後,我已反白顯示陳述式,然後再次使用 Ctrl 或命令 + Shift + E 鍵盤快速鍵來執行該查詢。如同 SQL Server Management Studio,我可以執行一或多個陳述式和,為了回應,請參閱一或多個結果集。

結果會顯示在方格中所示圖 5。您可以反白顯示的一或多個資料列和資料行的組合,然後按一下 [的 CSV 或 JSON 圖示,然後將提示您輸入要儲存的檔案名稱。而且您可以輕鬆地選取的所有資料從內容功能表上按一下滑鼠右鍵在方格上。

客戶資料查詢的結果
圖 5 客戶資料查詢的結果

檔案名稱提示會顯示目前的資料夾路徑。如果您想要用來儲存檔案時,您不需要重新輸入路徑。只要輸入 [檔案名稱,它會儲存在該資料夾中。我不知道第一個幾次,因此了從我的錯誤。

我所選取客戶資料投射,我的查詢,並使用指定的檔案名稱儲存至 JSON 圖示中的第一個資料列。以下是已輸出檔案的 JSON:

[
  {
    "CustomerID": "1",
    "FirstName": "Orlando",
    "LastName": "Gee"
  }
]

請記住,您可以輕鬆地加入您自己的程式碼片段 VS 程式碼。讓我們來建立一個預存程序和函式清單。從開始到喜好設定和使用者程式碼片段。您會看到 mssql 擴充功能加入 SQL 程式碼片段的範本。選擇將會開啟,而且空白範本。當您加入多個程式碼片段,您將會繼續使用此檔案中。此外,如果您已建立一些程式碼片段来共用 (或可能是找出錯誤或有其他概念 mssql),這是開放原始碼延伸模組,您可以移至參與github.com/Microsoft/vscode-mssql提交提取要求或問題。

之後有 Dr 的長工作階段。GoogleBing 並測試各種意見,這裡的建立,列出所有的預存程序和目標資料庫中的函式程式碼片段︰

"List Stored Procedures": {
  "prefix": "sqlListStoredProcedures",
  "body": [
    "SELECT [Name],[Type_Desc] " ,
    "FROM [sys].[all_objects] " ,
    "WHERE ([Type] = 'P' OR [Type]='FN' OR [Type]='TF' OR [Type]='IF') ",
    "AND [Is_MS_Shipped] = 0"
  ],
  "description": "List Stored Procedures"
}

現在當我在編輯器視窗中輸入 sql,sqlListStoreProcedures 是選項之一。執行該命令,針對目標資料庫的結果如下︰

Name                         Type_Desc
uspPrintError                SQL_STORED_PROCEDURE
uspLogError                  SQL_STORED_PROCEDURE
ufnGetAllCategories          SQL_TABLE_VALUED_FUNCTION
ufnGetSalesOrderStatusText   SQL_SCALAR_FUNCTION
ufnGetCustomerInformation    SQL_INLINE_TABLE_VALUED_FUNCTION

我無法共用此輸出結果方格上按一下滑鼠右鍵,然後選取其 「 複製與標頭 」 選項。

為深夜電視廣告說,「 但等候 ! 沒有更多 ! 」 編輯器視窗具有操作功能表,以及 (請參閱圖 6)。

編輯器視窗操作功能表
圖 6 編輯器視窗操作功能表

(在 [我的淺見) 在其上最有趣項目會移至定義並查看定義。如果您在 [編輯] 視窗中選取資料表名稱 — 例如,在命令中所示的客戶圖 5— 這些命令會顯示客戶資料表的建立指令碼。

Mssql 延伸模組會持續演變,我要轉寄至未來的更新。在此共用的版本仍然是預覽版本 0.3.0。如果您已經安裝 Visual Studio 程式碼中,您會收到通知的更新。您可以觀賞並加入其在其 GitHub 網站上的演進aka.ms/mssql marketplace


Julie LermanMicrosoft 地區主管、 Microsoft MVP、 軟體小組指導,以及位於 Vermont 山區顧問。您可以找到其呈現在資料存取和使用者群組和所做的心得世界各地的其他主題。在她部落格 thedatafarm.com/blog和以及 Code First DbContext 版本中的,所有從 O'Reilly Media 是"程式設計 Entity Framework"的作者。在 Twitter 上關注她︰ @julielerman ,請參閱在她 Pluralsight 課程 juliel.me/PS 影片

非常感謝下列 Microsoft 技術專家檢閱這篇文章︰ Kevin Cunnane、 Eric Kang 和 Sanjay Nagamangalam