共用方式為


定義 SQL Server 關聯式資料庫的報表資料集

更新: 2006 年 4 月 14 日

Reporting Services 提供一個資料處理延伸模組,這個模組支援從 Microsoft SQL Server 關聯式資料庫擷取報表資料。這個資料處理延伸模組會從關聯式資料表、檢視、預存程序及基礎資料來源上定義的其他資料結構中擷取資料。當您已經連接到資料來源之後,可以建立一個報表資料集,使其定義您想要將該資料來源中的哪些資料用於報表。Reporting Services 資料集包括資料來源、處理報表時會擷取資料的查詢以及欄位的集合;資料集定義會儲存在報表定義中,[資料集] 視窗會顯示報表中的目前資料集定義。

若要定義資料集,可以利用 Transact-SQL 查詢文字或預存程序呼叫來建立查詢,或是選擇資料表,並從中擷取所有資料;會自動從此查詢建立資料集的欄位集合。您可以編輯欄位或加入導出欄位,當此查詢執行時,導出欄位會評估以運算式為基礎的值;您也可以先建立篩選來限制來源中的資料,然後再將資料傳送到報表。如需有關定義資料集的指示,請參閱<報表資料的如何主題>。

關聯式資料來源有兩個查詢設計師:一般查詢設計師和圖形化查詢設計師;預設會開啟一般查詢設計師。使用一般查詢設計師可直接輸入 Transact-SQL 文字、從另一個來源貼上查詢文字、輸入不能利用圖形化查詢設計師建立的複雜查詢,或是輸入以查詢為基礎的運算式。使用圖形化查詢設計師可瀏覽資料來源上的中繼資料,以便能夠以互動方式設計查詢,或是檢視資料來源上預存程序或資料表的清單。

若要在報表設計師中開啟查詢設計師,請選取 [資料] 索引標籤。若要從某個查詢設計師切換到另一個查詢設計師,請按一下 [資料] 檢視工具列上的 [一般查詢設計師] (一般查詢設計師按鈕的圖示) 切換按鈕。如需詳細資訊和範例,請參閱<SQL Server 查詢設計師使用者介面>。

在定義查詢之後,也可以指定屬性 (如 TimeoutCaseSensitivity),以及定義哪些報表參數會傳遞值給查詢參數。當您執行查詢時,會從資料來源看到結果集;結果集中的資料行會對應到資料集內的欄位。當處理報表時,繫結到這些資料集欄位的報表項目會顯示所擷取或導出的資料。報表只會處理由任何查詢所擷取的第一個結果集。

關聯式資料的查詢設計師有以下三種命令類型:

  • [Text] 類型接受 Transact-SQL 陳述式。
  • [StoredProcedure] 類型接受資料來源上預存程序的呼叫;這個模式不支援輸出參數。
  • [TableDirect] 類型接受資料來源上的資料表名稱,而且會傳回該資料表的所有資料行;不是所有的資料提供者都支援 TableDirect。

使用查詢文字

您可以使用 Transact-SQL 來定義資料集內的資料;若要這樣做,請將資料集的命令類型設定為 [Text],然後直接在 SQL 窗格中輸入 Transact-SQL 文字。

例如,下列 Transact-SQL 查詢會選取所有員工的所有名稱。

SELECT FirstName, LastName
FROM   HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID

按一下工具列上的 [執行] 按鈕,即可執行查詢,並在 [結果] 窗格中顯示結果。

由於這個命令模式會接受 Transact-SQL 陳述式,所以也可以從這個模式執行預存程序。例如,下列 SQL 陳述式會呼叫 AdventureWorks 的預存程序 uspGetEmployeeManagers。

EXEC uspGetEmployeeManagers '1'

使用預存程序

您可以使用預存程序來定義資料集內的資料;若要這樣做,您可以從 [查詢] 窗格執行預存程序,或是將資料集的命令類型設定為 [StoredProcedure],然後從下拉式清單中選取它。如果您是在圖形化查詢設計師中,請按一下 [命令類型] 下拉式清單,並查看資料來源中的可用預存程序。如果您是在一般查詢設計師中,而且已經知道您要執行的預存程序名稱,請在 [查詢] 窗格中輸入該名稱。

Reporting Services 支援只傳回一組資料的預存程序。如果預存程序傳回多個結果集,只會使用第一個結果集。

如果預存程序的參數有預設值,可以使用 DEFAULT 關鍵字作為參數的值,在 Reporting Services 中存取該值。如果查詢參數是與報表參數繫結在一起,使用者可以在報表參數的輸入方塊中輸入或選取 DEFAULT 關鍵字。如需詳細資訊,請參閱<預存程序 (Database Engine)>。

使用 TableDirect

您可以輕鬆地傳回單一資料表的所有資料行,以定義資料集內的資料;若要這樣做,請將命令類型設定為 [TableDirect],並從下拉式清單中選取資料表。如果該資料表有資料來源上的結構描述,請確認資料表名稱中有包含該結構描述;如果沒有的話,您可以輸入。

例如,在 [查詢] 窗格中輸入下列 TableDirect 命令類型的命令,這個命令會從 AdventureWorks 資料庫的 Person.Contact 資料表中擷取所有資料。

Person.Contact

按一下工具列上的 [執行] 按鈕,即可執行命令,並在 [結果] 窗格中顯示結果。

ms159260.note(zh-tw,SQL.90).gif附註:
Microsoft SQL Server 資料來源類型不支援 TableDirect;若要使用這個模式,請選取 OLE DB 資料來源類型,然後選取 Microsoft OLE DB Provider for SQL Server。

使用查詢參數

如果您的查詢包含參數,報表設計師會在您輸入查詢時,自動在報表定義中建立對應的報表參數。報表執行時,報表參數的值會傳遞給查詢參數。例如,下列 SQL 查詢會建立名為 EmpID 的報表參數:

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

您可以在 [資料集] 對話方塊的 [參數] 索引標籤上,管理報表參數和查詢參數之間的關聯性。具有參數的查詢若與報表參數繫結在一起,則不需要 DECLARE 陳述式。

雖然報表參數是從查詢參數自動建立,但是在報表配置檢視中個別管理報表參數。

ms159260.note(zh-tw,SQL.90).gif附註:
如果變更查詢參數的名稱,或刪除查詢參數,與查詢參數對應的報表參數並不會自動變更或刪除。您可以使用 [報表參數] 對話方塊來移除報表參數。如需詳細資訊,請參閱<在 Reporting Services 中使用參數>。

建立資料集

  1. [資料] 索引標籤上,從 [資料集] 下拉式清單中選取 [<新增資料集>]

  2. [資料集] 對話方塊中,從 [資料來源] 下拉式清單中選取 [新增資料來源]

  3. [資料來源] 對話方塊中,從 [類型] 下拉式清單中選取 [Microsoft SQL Server]。

  4. 指定搭配 SQL Server 資料來源使用的連接字串。
    如需連接資訊,請洽詢資料庫管理員。下列連接字串範例會在本機用戶端上指定 AdventureWorks 範例資料庫。

    Data Source=localhost;Initial Catalog=AdventureWorks
    
  5. [認證] 索引標籤上的 [資料來源] 對話方塊中,設定資料庫認證。

  6. 按一下 [確定]。

如需詳細資訊,請參閱<連接到資料來源>。

請參閱

工作

如何:建立資料集 (報表設計師)

概念

定義報表資料集
Reporting Services 中的查詢設計工具
連接到資料來源

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

新增內容:
  • TableDirect。
  • 「建立資料集」子主題。
變更的內容: