SQL Server 基礎:SQL Server 範例資料庫

SQL Server樣本數據庫對於學習新技術或嘗試各種代碼示例非常有用。在本文中,我將詳細介紹主要的SQL Server樣本數據庫,包括Northwind、AdventureWorks和WideWorldImporters。我還將向您展示如何找到這些SQL Server樣本數據庫並安裝它們。

什麼是SQL Server樣本數據庫?

SQL Server樣本數據庫包含虛構信息,可安全用於測試和開發。然而,自從SQL Server 2005以來,在SQL Server安裝過程中並未安裝任何樣本數據庫。

廣告

在某个时候,微软认为示例数据库可能存在安全风险,这就是为什么他们将其从SQL Server代码库中移除的原因。 也就是说,多年来,微软已为SQL Server关系数据库管理系统和Analysis Services提供了几个示例数据库。

今天主要可用的示例数据库是Pubs、Northwind、AdventureWorks和WideWorldImporters。

正如您在本文中看到的,这些不同的示例数据库为您提供了不同类型的数据,您可以将其用于测试和开发场景。

Pubs和Northwind示例数据库

Pubs是随SQL Server一起提供的第一个示例出版商数据库,最初由Sybase开发。它是基于一个出版公司跟踪书籍、作者和销售的数据库。

广告

Pubs示例数据库曾作为SQL Server安装过程的一部分选项,直到SQL Server 2005发布。然而,许多SQL Server用户认为它过于简单,不适合作为示例。

为了提供一个更复杂的示例数据库,微软在SQL Server 2000发布时提供了Northwind数据库。它最初是由Access团队开发的,基于一个名为Northwind Traders的食品进出口公司。

微軟在釋出 SQL Server 2005 時後來移除了 Northwind 資料庫。然而,SQL Server 使用者仍然可以從 Northwind and pubs Sample Databases for SQL Server 2000 下載它們。

下載檔案是一個名為 SQL2000SampleDb.msi 的 .msi 安裝檔。執行安裝檔會將 T-SQL 資料庫指令稿提取到預設資料夾(C:\SQL Server 2000 Sample Databases),如下圖所示。

廣告

You can still install the Northwind and Pubs sample databases (Image credit: Petri/Michael Otey)

您可以執行 instpubs.sql 指令稿來安裝 Pubs 範例資料庫,以及執行 instnwnd.sql 指令稿來安裝 Northwind 範例資料庫。這些指令稿包含了建立和填充每個資料庫表格所需的所有程式碼。

Opening the .sql files for the two sample databases with SSMS’ Query Editor (Image credit: Petri/Michael Otey)
  • 點擊綠色的 執行 按鈕來執行這些指令稿。

當我第一次運行 instpubs.sql 腳本來安裝 Pubs 樣本時,我收到錯誤訊息“找不到存儲過程 ‘sp_dboption’。” 這個存儲過程在 SQL Server 2008 發布後從 SQL Server 中刪除。然而,刪除以下行使腳本能夠無錯誤運行。

execute sp_dboption 'pubs' ,'trunc. log on chkpt.' ,'true'
GO

運行 instnwd.sql 腳本來安裝 Northwinds 樣本時也出現相同的“找不到存儲過程 ‘sp_dboption’”錯誤。在這種情況下,刪除以下行使腳本能夠完整運行。

exec sp_dboption 'Northwind','trunc. log on chkpt.','true'
exec sp_dboption 'Northwind','select into/bulkcopy','true'
GO

運行這些 T-SQL 腳本將創建並填充 Pubs 和 Northwind 樣本數據庫。之後,您可以像任何其他 SQL Server 數據庫一樣使用它們。

AdventureWorks 和 AdventureWorksLT 樣本數據庫

從SQL Server 2005開始,Microsoft發布了AdventureWorks示例數據庫,旨在取代Pubs和Northwind。AdventureWorks是一個多國籍自行車製造和銷售公司Adventure Works Cycles的示例數據庫,它使用了Microsoft在SQL Server 2005中引入的SQL Server用戶架構命名系統

AdventureWorks數據庫的主要關聯版本是AdventureWorksAdventureWorksLT。後者是完整AdventureWorks數據庫的較小和簡化版本。自SQL Server 2008 R2以來,每個SQL Server版本都有這些數據庫的多個版本。然而,到目前為止,SQL Server 2022還沒有新版本發布。

AdventureWorks不同SQL Server版本的示例最初在CodePlex上找到,但CodePlex网站在2017年关闭。它们后来被移至GitHub。下表包含AdventureWorks示例数据库所有版本的下载链接。

AdventureWorks sample database AdventureWorksLT sample database
AdventureWorks2019.bak AdventureWorksLT2019.bak
AdventureWorks2017.bak AdventureWorksLT2017.bak
AdventureWorks2016.bak AdventureWorksLT2016.bak
AdventureWorks2016_EXT.bak N/A
AdventureWorks2014.bak AdventureWorksLT2014.bak
AdventureWorks2012.bak AdventureWorksLT2012.bak
AdventureWorks2008R2.bak

这些下载是完整的数据库备份(.bak)文件,您可以使用它们来安装AdventureWorks示例。您只需下载.bak文件,然后使用SSMS或T-SQL RESTORE语句将备份文件还原为SQL Server数据库。

在下面的图像中,您可以看到AdventureWorks2019的SSMS还原对话框提示您选择要还原的.bak文件,并要求输入数据库名称。

Restoring the AdventureWorks2019 sample database from a backup file (Image credit: Petri/Michael Otey)

除了关系数据库示例外,Microsoft还为AdventureWorks数据库制作了名为AdventureWorksDW和AdventureWorksAS的商业智能/数据仓库示例。这些示例可与SQL Server分析服务一起使用。它们的安装方式与关系示例相同,通过下载和还原.bak文件。BI示例位于以下GitHub位置:

WideWorldImporters示例数据库

隨著 SQL Server 2016 的發布,微軟推出了新的 WideWorldImporters 範例資料庫。該資料庫用於示範一家批發新奇商品的進口和經銷商,可用於熟悉 temporal tables(temporal 資料表)In-Memory OLTP(記憶體內 OLTP)columnstore indexes(columnstore 指數)Row-Level Security(列層級安全性) (RLS)、dynamic data masking(動態資料遮罩) (DDM) 等功能。

有關 WideWorldImporters 關聯式資料庫的不同版本適用於 SQL Server 2016 及更高版本的本地版本,以及 Azure SQL Database

要在本地 SQL Server 系統上安裝 WideWorldImporters 樣本數據庫,您可以下載 .bak 文件,然後使用 SSMS 或 T-SQL RESTORE 將備份文件還原為 SQL Server 數據庫。您可以在下圖中看到 WideWorldImporter 數據庫的 SSMS 還原對話框。

Installing the WideWorldImporters sample database by restoring a backup file (Image credit: Petri/Michael Otey)

各種 BACPAC 文件可與本地 SQL Server 或 Azure SQL Server 一起使用。要將 .bacpac 文件導入為新的 SQL Server 數據庫,您可以使用 SQL Server Management Studio

  • 單擊“數據庫”節點,然後從上下文菜單中選擇 導入數據層應用程序 選項。
  • 按照下面所示的導入精靈中的提示,從 .bacpac 文件導入樣本數據庫。
Importing a .bacpac file as a new SQL Server database in SSMS (Image credit: Petri/Michael Otey)

正如您可能期望的那樣,除了關係樣本之外,還有幾個數據倉庫示例。

有關生成樣本數據庫的更多詳細信息,您可以查看 Microsoft Learn 上關於 WideWorldImporters 數據生成的文章。該文件中包含了代碼示例,展示了如何在這個數據庫中使用不同功能的 T-SQL 腳本。此外,還有一個包含兩個程序的工作負載-驅動程序.zip 文件,可以模擬對 WideWorldImporters 數據庫運行的工作負載。

總結

在本教程中,您了解了不同的 Microsoft SQL Server 樣本數據庫,包括 Northwind、AdventureWorks 和 WideWorldImporters。本指南應該幫助您決定您可能想要用於測試和開發的樣本,您可以在 Microsoft SQL Server 文檔中找到更多信息。Microsoft SQL Server 文檔

相關文章:

Source:
https://petri.com/sql-server-sample-databases/