_Storages Table

The _Storages table lists embedded OLE data storages. This is a temporary table, created only when referenced by a SQL statement.

Column Type Key Nullable
Name Text Y N
Data Binary N Y




A unique key that identifies the storage. The maximum length of Name is 31 characters.


The unformatted binary data.


To add an OLE storage to a database, create a new record in the _Storages table and enter the name of the storage into the Name column. Use MsiRecordSetStream to copy data into the Data column of this record. Finally, use MsiViewModify to insert the record into the _Storages table.

Data cannot be read from the _Storages table. However, the _Storages table can be queried to check for the existence of a specific storage. This means that it is not possible to move an OLE storage from one database to another. You must instead import the original storage file into the new database.To delete an OLE storage, fetch the record containing the binary data, set the Data column in the _Storages table to null, and then update the record. An alternative method is to simply delete the record using either MsiViewModify or a plain SQL query.

To rename an OLE storage, update the Name column of the record.

If a hold is placed on this table using SQL (ALTER TABLE

HOLD) or a column is added with HOLD, the table must be released using FREE. Storages are not written until the table has been released or committed.