The [[Microsoft TDS Protocol]] and Microsoft SQL Server use the following elements to identify a object:
- database name (catalog name)
- schema name
- table name
A fully qualified Microsoft SQL Server object name resembles:
```
catalog.schema.table
```
[[Invantive UniversalSQL]] uses an additional fourth element [[Invantive UniversalSQL/General/Data Containers|Data Containers|data container]] to identify an object:
- data container
- catalog name
- schema name
- table name
A fully qualified Invantive UniversalSQL object name resembles:
```
catalog.schema.table@datacontainer
```
## Mapping
Invantive UniversalSQL Server applies a bi-directional mapping between the Microsoft SQL Server name and UniversalSQL name.
In release 26.0, always the same standard mapping is applied. When deemed necessary for a platform, more mapping definitions can be integrated.
## Standard Mapping
The standard mapping has two types of mapping. The mapping type is chosen per data container. Per data container, the number of distinct catalog names is determined.
### Data Container with Single Catalog Name
When a data container has only a single catalog, the mapping from Invantive UniversalSQL Server to Microsoft SQL Server is simple:
```
<catalog>.<schema>.<table>@<datacontainer>
```
is rewritten to:
```
<datacontainer>.<schema>.<table>
```
The catalog name is left out, since it can have only one value.
The other way around, from Microsoft SQL Server to Invantive UniversalSQL Server, is also simple:
```
<datacontainer>.<schema>.<table>
```
is rewritten to:
```
<schema>.<table>@<datacontainer>
```
During execution, the catalog name is automatically determined by the default object name resolution of Invantive UniversalSQL.
For example, the Invantive UniversalSQL name `ActiveCampaign.V3.Accounts@acn` matches the Microsoft SQL Server name `acn.V3.Accounts`.
### Data Container with Multiple Catalog Names
When a data container has multiple catalogs, the mapping from Invantive UniversalSQL Server to Microsoft SQL Server merges the catalog and schema name in a schema name containing both, separated by `#`:
```
<catalog>.<schema>.<table>@<datacontainer>
```
is rewritten to:
```
<datacontainer>.<catalog>#<schema>.<table>
```
The other way around, from Microsoft SQL Server to Invantive UniversalSQL Server, the composed schema name on Microsoft SQL Server is split into the catalog and schema name on Invantive UniversalSQL:
```
<datacontainer>.<composed-schema>.<table>
```
is rewritten to:
```
<catalog>.<schema>.<table>@<datacontainer>
```
For example, the Invantive UniversalSQL name `ExactOnlineREST.Financial.Journals@eol` matches the Microsoft SQL Server name `eol.ExactOnlineREST#Financials.Journals`.