我們的數據庫中有一個不斷變化的(!),通常會添加新列。我什麼時候需要更新報告模型
在這種情況下,報告服務是報告選擇的工具嗎?
案例1:開發人員將新列添加到報表中使用的表中。使用基於舊錶的報告模型創建的舊報告是否仍然有效?案例2:開發人員添加一個新列,並且最終用戶希望能夠對其進行報告。如果我們更新報告模型,那麼基於舊報告模型的舊報告是否仍然有效?或者每當最終用戶想要報告新創建的列時,我們是否必須創建新的報告模型?
問候
拉爾斯
我們的數據庫中有一個不斷變化的(!),通常會添加新列。我什麼時候需要更新報告模型
在這種情況下,報告服務是報告選擇的工具嗎?
案例1:開發人員將新列添加到報表中使用的表中。使用基於舊錶的報告模型創建的舊報告是否仍然有效?案例2:開發人員添加一個新列,並且最終用戶希望能夠對其進行報告。如果我們更新報告模型,那麼基於舊報告模型的舊報告是否仍然有效?或者每當最終用戶想要報告新創建的列時,我們是否必須創建新的報告模型?
問候
拉爾斯
報告服務也需要變革管理戰略。因此,將新列添加到基礎數據源的表中並不會影響報告。
如果您想在報表模型中包含新添加的表列,則應更新(而不是從頭創建)您的報表模型。更新報告模型會自動將新列插入到模型中,並且不會破壞舊報告。另一方面,如果更改報告模型(如表/列名稱或列數據類型等),則更新報告模型不會更新/刪除現有項目。您應該在報告模型和受影響的報告中手動更改它們。
因此,就您的情況而言,您不會遇到任何報告服務問題。
這裏我添加了Reporting Services/Report Model文檔的變更管理部分,強烈建議您閱讀它。
變更管理
模型和基於它們 的報告有許多內部和外部的 依賴。因此,您需要 考慮引入到依賴鏈中的變更 的影響。 基於關係數據的報表模型 源使用GUID屬性 標識每個實體,屬性和 角色。如上所述,報告 模型生成過程設置了 GUID,這些GUID在每個 代都重新創建。出於這個原因,並且爲了保留在報告模型上的編輯 生成新的報告模型,每個 發生變化的時間不是一個選項。 您必須使用現有型號 並使用下面描述的更新選項 手動或通過 進行更新。
語義查詢引擎 管理缺少的屬性,當他們 對報告處理不重要時。 當安全 屬性排除用戶看到 報告中的某些屬性可能允許其他用戶使用 時,此功能可以保持 的運行狀態。因此,如果 用戶不被允許訪問 (如員工家庭電話號碼 ),則員工列表報告 將針對該用戶運行,但不會顯示排除的信息 。當編輯模型以刪除 非關鍵屬性時,此 功能對您的優勢有效 。儘管報告 可能顯示空白字段,但報告 仍將在刪除 屬性後運行。但是, 查詢或報告處理可能是 被模型的其他更改中斷。
請記住,如果有任何報告取決於 它,則不應覆蓋 從關係型 數據源生成的模型。
架構更改
如果基礎架構的變化和 報表模型的實體或屬性 受到影響,您可能需要相應地更新 報表模型。要在BIDS中執行 ,請在報告模型菜單上使用自動生成命令 。您也可以從 模型項目的上下文菜單中選擇自動生成。通過使用 上下文菜單,您可以選擇要更新的模型上的哪個 項目 而不必更新整個 模型。
自動生成過程將 顯示信息,警告和提醒 消息。這些消息將顯示模型中的所有 項目,即 與基礎DSV 不同步,即使這些項目不是 特別包含在爲自動生成而選擇的項目 中。此 功能可幫助檢測潛在的 錯誤,當運行基於 模型的報告時可能導致不可預知的 錯誤。
自動更新僅影響 新增項目。自動生成過程將在DSV中添加任何 新實體,屬性或角色 ,但不會刪除或更改任何實體,屬性或角色。 因此,您需要手動管理 更新或刪除的項目。在生成 過程結束時顯示的消息 將突出顯示在所產生的不同步 模型中更新的任何實體, 屬性或角色,該角色需要更新爲 。您將不得不手動更新 模型或恢復DSV 更改以保持模型到模式 的一致性。
數據源改變
你可以開發和測試模型 開發環境,然後 在數據改變 連接字符串容易部署在生產 環境中的模型DSV使用的源文件 。源數據模式的兩個數據 必須相同。
請注意,DSV包含基於實際數據庫數據的統計數據 。由於 在「報告模型生成」中的「統計 」部分中提到,所以這些統計值的值 將驅動在生成模型 期間的一些 算法決策。因此,如果 開發數據庫數據是 與 生產數據庫數據顯着不同,那麼可能不會針對最終將使用的數據 優化模型 。
希望得到這個幫助。
太好了,謝謝你的詳細解答 – Larsi 2010-08-25 10:53:26