_Streams資料表
_Streams資料表會列出內嵌的 OLE 資料流程。 這是臨時表,只有在 SQL 語句參考時才會建立。
資料行 | 類型 | 答案 | Nullable |
---|---|---|---|
名稱 | Text | Y | N |
資料 | 二進位 | N | Y |
資料行
-
名字
-
識別資料流程的唯一索引鍵。 Name 的最大長度為 62 個字元。
-
資料
-
未格式化的二進位資料。
備註
例如,若要複製 OLE 資料流程 (, 二進位 資料類型的物件) 從檔案複製到資料庫、在_Streams資料表中建立記錄,並將資料流程的名稱輸入至此記錄的 Name 資料行,並使用 MsiRecordSetStream將資料從檔案複製到資料行。 使用 MsiViewModify 將新記錄插入資料表中。
若要讀取內嵌在資料庫中的二進位資料流程,請使用 SQL 查詢來尋找並擷取包含二進位資料的記錄。 使用 MsiRecordReadStream 將二進位資料讀入緩衝區。
若要將二進位資料流程從一個資料庫移至另一個資料庫,請先將資料匯出至檔案。 使用 SQL 查詢來尋找檔案中的資料流程,並使用 MsiRecordSetStream 將資料從檔案複製到第二個資料庫的 _Streams 資料表的 [資料] 資料行。 這可確保每個資料庫都有自己的二進位資料複本。 您只能藉由從第一個資料庫擷取具有資料並將它插入第二個資料庫的記錄,才能將二進位資料從某個資料庫移至另一個資料庫。
若要刪除資料流程,請先擷取記錄,並將 [資料] 資料行設定為 Null,再更新記錄。 另一種方法是從資料表中移除記錄,並使用 MsiViewModify 或純 SQL 查詢將其刪除。 如果資料流程從資料表中刪除,則不應該將資料流程擷取到記錄中。
若要重新命名 OLE 資料流程,請更新記錄的 [名稱] 資料行。
如果使用 SQL (ALTER TABLE 將保留放在此資料表上
HOLD) 或具有 HOLD 的資料行新增,必須使用 FREE 釋放資料表。 在資料表發行或認可之前,不會寫入資料流程。