定義 SQL Server 關聯式資料庫的報表資料集
更新: 2006 年 4 月 14 日
Reporting Services 提供一個資料處理延伸模組,這個模組支援從 Microsoft SQL Server 關聯式資料庫擷取報表資料。這個資料處理延伸模組會從關聯式資料表、檢視、預存程序及基礎資料來源上定義的其他資料結構中擷取資料。當您已經連接到資料來源之後,可以建立一個報表資料集,使其定義您想要將該資料來源中的哪些資料用於報表。Reporting Services 資料集包括資料來源、處理報表時會擷取資料的查詢以及欄位的集合;資料集定義會儲存在報表定義中,[資料集] 視窗會顯示報表中的目前資料集定義。
若要定義資料集,可以利用 Transact-SQL 查詢文字或預存程序呼叫來建立查詢,或是選擇資料表,並從中擷取所有資料;會自動從此查詢建立資料集的欄位集合。您可以編輯欄位或加入導出欄位,當此查詢執行時,導出欄位會評估以運算式為基礎的值;您也可以先建立篩選來限制來源中的資料,然後再將資料傳送到報表。如需有關定義資料集的指示,請參閱<報表資料的如何主題>。
關聯式資料來源有兩個查詢設計師:一般查詢設計師和圖形化查詢設計師;預設會開啟一般查詢設計師。使用一般查詢設計師可直接輸入 Transact-SQL 文字、從另一個來源貼上查詢文字、輸入不能利用圖形化查詢設計師建立的複雜查詢,或是輸入以查詢為基礎的運算式。使用圖形化查詢設計師可瀏覽資料來源上的中繼資料,以便能夠以互動方式設計查詢,或是檢視資料來源上預存程序或資料表的清單。
若要在報表設計師中開啟查詢設計師,請選取 [資料] 索引標籤。若要從某個查詢設計師切換到另一個查詢設計師,請按一下 [資料] 檢視工具列上的 [一般查詢設計師] () 切換按鈕。如需詳細資訊和範例,請參閱<SQL Server 查詢設計師使用者介面>。
在定義查詢之後,也可以指定屬性 (如 Timeout 和 CaseSensitivity),以及定義哪些報表參數會傳遞值給查詢參數。當您執行查詢時,會從資料來源看到結果集;結果集中的資料行會對應到資料集內的欄位。當處理報表時,繫結到這些資料集欄位的報表項目會顯示所擷取或導出的資料。報表只會處理由任何查詢所擷取的第一個結果集。
關聯式資料的查詢設計師有以下三種命令類型:
- [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
按一下工具列上的 [執行] 按鈕,即可執行命令,並在 [結果] 窗格中顯示結果。
附註: |
---|
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 陳述式。
雖然報表參數是從查詢參數自動建立,但是在報表配置檢視中個別管理報表參數。
附註: |
---|
如果變更查詢參數的名稱,或刪除查詢參數,與查詢參數對應的報表參數並不會自動變更或刪除。您可以使用 [報表參數] 對話方塊來移除報表參數。如需詳細資訊,請參閱<在 Reporting Services 中使用參數>。 |
建立資料集
在 [資料] 索引標籤上,從 [資料集] 下拉式清單中選取 [<新增資料集>]。
在 [資料集] 對話方塊中,從 [資料來源] 下拉式清單中選取 [新增資料來源]。
在 [資料來源] 對話方塊中,從 [類型] 下拉式清單中選取 [Microsoft SQL Server]。
指定搭配 SQL Server 資料來源使用的連接字串。
如需連接資訊,請洽詢資料庫管理員。下列連接字串範例會在本機用戶端上指定 AdventureWorks 範例資料庫。Data Source=localhost;Initial Catalog=AdventureWorks
在 [認證] 索引標籤上的 [資料來源] 對話方塊中,設定資料庫認證。
按一下 [確定]。
如需詳細資訊,請參閱<連接到資料來源>。
請參閱
工作
概念
定義報表資料集
Reporting Services 中的查詢設計工具
連接到資料來源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 4 月 14 日 |
|