SQL Server 連接類型 (SSRS)

若要在報表中包含來自 SQL Server 資料庫的資料,您必須具有以 Microsoft SQL Server 類型的報表資料來源為基礎的資料集。此內建資料來源類型是以 Microsoft SQL Server 資料延伸模組為基礎。使用此資料來源類型可連接至目前版本和舊版的 SQL Server 資料庫,並從中擷取資料。

此資料延伸模組支援多值參數、伺服器彙總,以及與連接字串分開管理的認證。

使用本主題中的資訊建立資料來源。如需逐步指示,請參閱<如何:加入及驗證資料連接或資料來源 (報表產生器 3.0 和 SSRS)>。

本文內容

連接字串

認證

查詢

參數

備註

如何主題

相關章節

連接字串

當您連接至 SQL Server 資料庫時,會連接到伺服器上 SQL Server 執行個體中的資料庫物件。資料庫可能有包含多個資料表、檢視表和預存程序的多個結構描述。您會指定在查詢設計工具中使用的資料庫物件。如果沒有在連接字串中指定資料庫,則會連接到資料庫管理員指派給您的預設資料庫。

請連絡資料庫管理員,以取得用於連接資料來源的連接資訊和認證。下列連接字串範例會在本機用戶端上指定範例資料庫:

Data Source=<server>;Initial Catalog=AdventureWorks

如需有關連接字串範例的詳細資訊,請參閱<在報表產生器 3.0 中的資料連接、資料來源及連接字串>。

認證

需要有認證才能夠執行報表、於本機預覽報表並且從報表伺服器預覽報表。

發行報表之後,您可能需要變更資料來源的認證,如此當報表在報表伺服器上執行時,擷取資料的權限就會是有效的。

報表撰寫用戶端提供下列可用來指定認證的選項:

  • 目前的 Windows 使用者 (也稱為整合式安全性)。

  • 使用預存的使用者名稱和密碼。

  • 提示使用者提供認證。此選項只支援 Windows 整合式安全性。

  • 不需要認證。若要使用這個選項,您必須在報表伺服器上設定自動執行帳戶。如需詳細資訊,請參閱 msdn.microsoft.com 上 Reporting Services 文件集中的<設定自動執行帳戶>。

如需詳細資訊,請參閱<資料連接、資料來源及連接字串 (SSRS)>或<在報表產生器 3.0 中指定認證>。

搭配回到頁首連結使用的箭頭圖示回到頁首

查詢

查詢會指定要為報表資料集擷取的資料。查詢結果集中的資料行會填入資料集的欄位集合。報表只會處理查詢擷取的第一個結果集。

根據預設,如果您建立新查詢或開啟現有查詢,而查詢可在圖形化查詢設計工具中表示,就可使用關聯式查詢設計工具。您可以利用下列方式指定查詢:

  • 以互動方式建立查詢。使用關聯式查詢設計工具,此工具會顯示資料表、檢視表、預存程序和其他資料庫項目的階層式檢視,並且依資料庫結構描述加以組織。從資料表或檢視選取資料行,或者指定預存程序或資料表值函式。藉由指定篩選準則,限制要擷取的資料列數目。藉由設定參數選項,在報表執行時自訂篩選器。

  • 輸入或貼上查詢。使用以文字為基礎的查詢設計工具直接輸入 Transact-SQL 文字、從另一個來源貼上查詢文字、輸入不能利用關聯式查詢設計工具建立的複雜查詢,或是輸入以查詢為基礎的運算式。

  • 匯入檔案或報表中的現有查詢。使用查詢設計工具的 [匯入查詢] 按鈕瀏覽至 .sql 檔案或 .rdl 檔案,然後匯入查詢。

如需詳細資訊,請參閱<關聯式查詢設計工具使用者介面 (報表產生器 3.0)>和<以文字為基礎的查詢設計工具使用者介面 (報表產生器 3.0)>。

以下為支援的查詢模式:

  • 文字:輸入 Transact-SQL 命令。

  • 預存程序:從預存程序清單選擇。

使用 Text 查詢類型

在以文字為基礎的查詢設計工具中,您可以輸入 Transact-SQL 命令來定義資料集內的資料。例如,下列 Transact-SQL 查詢會選取所有行銷助理員工的名字:

SELECT
  HumanResources.Employee.BusinessEntityID
  ,HumanResources.Employee.JobTitle
  ,Person.Person.FirstName
  ,Person.Person.LastName
FROM
  Person.Person
  INNER JOIN HumanResources.Employee
    ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant' 

按一下工具列上的 [執行] 按鈕 (!) 來執行查詢並顯示結果集。

若要將這個查詢參數化,請加入查詢參數。例如,將 WHERE 子句變更為下列:

WHERE HumanResources.Employee.JobTitle = (@JobTitle)

當您執行查詢時,會自動建立與查詢參數對應的報表參數。如需詳細資訊,請參閱本主題稍後的<查詢參數>。

搭配回到頁首連結使用的箭頭圖示回到頁首

使用 StoredProcedure 查詢類型

您可以用下列其中一種方式指定資料集查詢的預存程序:

  • [資料集屬性] 對話方塊中,設定 [預存程序] 選項。從預存程序和資料表值函式的下拉式清單選擇。

  • 在關聯式查詢設計工具的 [資料庫檢視] 窗格中,選取預存程序或資料表值函式。

  • 在以文字為基礎的查詢設計工具中,從工具列選取 [StoredProcedure]

在選取預存程序或資料表值函式後,就可以執行查詢。系統會提示您輸入參數值。當您執行查詢時,會自動建立與輸入參數對應的報表參數。如需詳細資訊,請參閱本主題稍後的「查詢參數」。

只支援預存程序所擷取的第一個結果集。如果預存程序傳回多個結果集,只會使用第一個結果集。

如果預存程序的參數有預設值,可以使用 DEFAULT 關鍵字做為參數值來存取該值。如果查詢參數連結到報表參數,使用者可以在報表參數的輸入方塊中輸入或選取 DEFAULT 一字。

如需詳細資訊,請參閱 msdn.microsoft.com 上 SQL Server 線上叢書中的<預存程序 (資料庫引擎)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

參數

當查詢文字包含具有輸入參數的查詢變數或預存程序時,會自動產生資料集的對應查詢參數和報表的報表參數。查詢文字的查詢變數不能包含 DECLARE 陳述式。

例如,下列 SQL 查詢會建立名為 EmpID 的報表參數:

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = (@EmpID)

報表參數是透過預設屬性值建立,您可能會需要修改這些值。例如:

  • 根據預設,每一個報表參數的資料類型都是 [文字]。如果基礎資料是不同的資料類型,則必須變更參數資料類型。

  • 如果您為多值參數選取此選項,則必須使用 IN 運算子手動變更查詢,測試值是否為集合的一部分,例如 WHERE EmployeeID IN (@EmpID)。

如需詳細資訊,請參閱<參數 (報表產生器 3.0 和 SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

備註

您也可以使用 OLE DB 或 ODBC 資料來源類型,從 SQL Server 資料庫擷取資料。如需詳細資訊,請參閱<OLE DB 連接類型 (SSRS)>或<ODBC 連接類型 (SSRS)>。

平台和版本資訊

如需有關平台和版本支援的詳細資訊,請參閱 SQL Server線上叢書中 Reporting Services 文件集的<Reporting Services 支援的資料來源 (SSRS)>。

搭配回到頁首連結使用的箭頭圖示回到頁首

相關章節

本文件集的這些章節會提供報表資料的深入概念性資訊,以及如何定義、自訂和使用與報表資料相關組件的程序資訊。

搭配回到頁首連結使用的箭頭圖示回到頁首