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),如下圖所示。

您可以執行 instpubs.sql 指令稿來安裝 Pubs 範例資料庫,以及執行 instnwnd.sql 指令稿來安裝 Northwind 範例資料庫。這些指令稿包含了建立和填充每個資料庫表格所需的所有程式碼。
- 首先,使用 SQL Server Management Studio(SSMS)查詢編輯器開啟 .sql 檔案,如下圖所示。

- 點擊綠色的 執行 按鈕來執行這些指令稿。
當我第一次運行 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數據庫的主要關聯版本是AdventureWorks和AdventureWorksLT。後者是完整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文件,并要求输入数据库名称。

除了关系数据库示例外,Microsoft还为AdventureWorks数据库制作了名为AdventureWorksDW和AdventureWorksAS的商业智能/数据仓库示例。这些示例可与SQL Server分析服务一起使用。它们的安装方式与关系示例相同,通过下载和还原.bak文件。BI示例位于以下GitHub位置:
- AdventureWorksDW2019.bak
- AdventureWorksDW2017.bak
- AdventureWorksDW2016.bak
- AdventureWorksDW2016_EXT.bak
- AdventureWorksDW2014.bak
- AdventureWorksDW2012.bak
- AdventureWorksDW2008R2.bak
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:
- WideWorldImporters-Full.bak:適用於 SQL Server 2016 企業版及更高版本。它是備份檔案格式。
- WideWorldImporters-Standard.bak:適用於 SQL Server 2016 標準版及更高版本。它也是備份檔案格式。
- WideWorldImporters-Full.bacpac:這是針對 Azure SQL Database 高級版的。它提供了一個完整功能的 OLTP 範例資料庫,採用 BACPAC 格式。
- WideWorldImporters-Standard.bacpac – 這也適用於 Azure SQL Database 標準版,並提供 BACPAC 格式的標準版 OLTP 樣本數據庫。
要在本地 SQL Server 系統上安裝 WideWorldImporters 樣本數據庫,您可以下載 .bak 文件,然後使用 SSMS 或 T-SQL RESTORE 將備份文件還原為 SQL Server 數據庫。您可以在下圖中看到 WideWorldImporter 數據庫的 SSMS 還原對話框。

各種 BACPAC 文件可與本地 SQL Server 或 Azure SQL Server 一起使用。要將 .bacpac 文件導入為新的 SQL Server 數據庫,您可以使用 SQL Server Management Studio。
- 單擊“數據庫”節點,然後從上下文菜單中選擇 導入數據層應用程序 選項。
- 按照下面所示的導入精靈中的提示,從 .bacpac 文件導入樣本數據庫。

正如您可能期望的那樣,除了關係樣本之外,還有幾個數據倉庫示例。
- WideWorldImportersDW-Full.bak – 適用於 SQL Server 2016 Enterprise 版及更高版本。它是備份檔案格式。
- WideWorldImportersDW-Standard.bak – 適用於 SQL Server 2016 標準版及更高版本。它是備份檔案格式。
- WideWorldImportersDW-Fullbacpac – 適用於 Azure SQL Database 高階版。它以 BACPAC 格式提供了完整功能的 OLTP 樣本資料庫。
- WideWorldImportersDW-Standard.bacpac – 適用於 Azure SQL Database 標準版。它以 BACPAC 格式提供了標準版 OLTP 樣本資料庫。
有關生成樣本數據庫的更多詳細信息,您可以查看 Microsoft Learn 上關於 WideWorldImporters 數據生成的文章。該文件中包含了代碼示例,展示了如何在這個數據庫中使用不同功能的 T-SQL 腳本。此外,還有一個包含兩個程序的工作負載-驅動程序.zip 文件,可以模擬對 WideWorldImporters 數據庫運行的工作負載。
總結
在本教程中,您了解了不同的 Microsoft SQL Server 樣本數據庫,包括 Northwind、AdventureWorks 和 WideWorldImporters。本指南應該幫助您決定您可能想要用於測試和開發的樣本,您可以在 Microsoft SQL Server 文檔中找到更多信息。Microsoft SQL Server 文檔。
相關文章: