

# Obtención de información del catálogo del sistema de Babelfish
<a name="babelfish-query-database"></a>

Puede obtener información sobre los objetos de base de datos que están almacenados en su clúster de Babelfish mediante la consulta de muchas de las mismas vistas del sistema que se utilizan en SQL Server. Cada nueva versión de Babelfish agrega compatibilidad con más vistas del sistema. Para ver una lista de las vistas disponibles actualmente, consulte la tabla [SQL Server system catalog views](#system-catalog-table). 

Estas vistas del sistema proporcionan información del catálogo del sistema (`sys.schemas`). En el caso de Babelfish, estas vistas contienen esquemas de sistema tanto de SQL Server como de PostgreSQL. Para consultar la información del catálogo del sistema en Babelfish, puede utilizar el puerto de TDS o el puerto de PostgreSQL, como se muestra en los siguientes ejemplos.
+ **Consulte el puerto T-SQL mediante `sqlcmd` u otro cliente de SQL Server**.

  ```
  1> SELECT * FROM sys.schemas
  2> GO
  ```

  Esta consulta devuelve los esquemas del sistema de SQL Server y Aurora PostgreSQL, como se muestra a continuación.

  ```
  name      
  ---------------------------------------------------------
  demographic_dbo          
  public                                                    
  sys                           
  master_dbo
  tempdb_dbo
  ...
  ```
+ **Consultar el puerto de PostgreSQL mediante `psql` o `pgAdmin`**. En este ejemplo se utiliza el metacomando de esquemas de listas `psql` (`\dn`):

  ```
  babelfish_db=> \dn
  ```

  La consulta devuelve el mismo conjunto de resultados que el que devuelve `sqlcmd` en el puerto de T-SQL.

  ```
          List of schemas
               Name              
  ------------------------------
  
   demographic_dbo           
  
   public                       
   sys                          
   master_dbo                   
   tempdb_dbo                   
  ...
  ```

## Catálogos del sistema de SQL Server disponibles en Babelfish
<a name="babelfish-query-database.system-catalogs"></a>

En la tabla siguiente encontrará las vistas de SQL Server implementadas actualmente en Babelfish. Para obtener más información sobre los catálogos del sistema en SQL Server, consulte [System Catalog Views (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/catalog-views-transact-sql?view=sql-server-ver16) (Vistas del catálogo del sistema [Transact-SQL]) en la documentación de Microsoft.<a name="system-catalog-table"></a>


| Nombre de la vista | Descripción o limitación de babelfish (si procede) | 
| --- | --- | 
| `sys.all_columns` | Todas las columnas de todas las tablas y vistas | 
| `sys.all_objects` | Todos los objetos de todos los esquemas | 
| `sys.all_sql_modules` | La unión de `sys.sql_modules` y `sys.system_sql_modules` | 
| `sys.all_views` | Todas las vistas de todos los esquemas | 
| `sys.columns` | Todas las columnas de tablas y vistas definidas por el usuario | 
| `sys.configurations` | Compatibilidad con Babelfish limitada a una configuración de solo lectura. | 
| `sys.data_spaces` | Contiene una fila para cada espacio de datos. Puede ser un grupo de archivos, un esquema de particiones o un grupo de archivos de datos FILESTREAM. | 
| `sys.database_files` | Una vista por base de datos que contiene una fila por cada archivo de una base de datos tal y como se almacena en la propia base de datos. | 
| `sys.database_mirroring` | Para obtener información, consulte [sys.database\$1mirroring](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-mirroring-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL.  | 
| `sys.database_principals` | Para obtener información, consulte [sys.database\$1principals](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.database_role_members` | Para obtener información, consulte [sys.database\$1role\$1members](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-role-members-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.databases` | Todas las bases de datos de todos los esquemas | 
| `sys.dm_exec_connections` | Para obtener información, consulte [sys.dm\$1exec\$1connections](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-connections-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.dm_exec_sessions` | Para obtener información, consulte [sys.dm\$1exec\$1sessions](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sessions-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL.  | 
| `sys.dm_hadr_database_replica_states` | Para obtener información, consulte [sys.dm\$1hadr\$1database\$1replica\$1states](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-hadr-database-replica-states-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.dm_os_host_info` | Para obtener información, consulte [sys.dm\$1os\$1host\$1info](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-host-info-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.endpoints` | Para obtener información, consulte [sys.endpoints](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-endpoints-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.indexes` | Para obtener información, consulte [sys.indexes](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-indexes-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.languages` | Para obtener información, consulte [sys.languages](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-fulltext-languages-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL.  | 
| `sys.schemas` | Todos los esquemas | 
| `sys.server_principals` | Todos los inicios de sesión y roles | 
| `sys.sql_modules` | Para obtener información, consulte [sys.sql\$1modules](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.sysconfigures` | Compatibilidad con Babelfish limitada a una sola configuración de lectura. | 
| `sys.syscurconfigs` | Compatibilidad con Babelfish limitada a una configuración de solo lectura. | 
| `sys.sysprocesses` | Para obtener información, consulte [sys.sysprocesses](https://docs.microsoft.com/en-us/sql/relational-databases/system-compatibility-views/sys-sysprocesses-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.system_sql_modules` | Para obtener información, consulte [sys.system\$1sql\$1modules](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-system-sql-modules-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.table_types` | Para obtener información, consulte [sys.table\$1types](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-table-types-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 
| `sys.tables` | Todas las tablas de un esquema | 
| `sys.xml_schema_collections` | Para obtener información, consulte [sys.xml\$1schema\$1collections](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-xml-schema-collections-transact-sql?view=sql-server-ver16) en la documentación de Microsoft Transact-SQL. | 

PostgreSQL implementa catálogos de sistemas similares a las vistas de catálogo de objetos de SQL Server. Para obtener una lista completa de catálogos de sistemas, consulte [System Catalogs](https://www.postgresql.org/docs/current/catalogs.html) en la documentación de PostgreSQL.

## Exportaciones DDL compatibles con Babelfish
<a name="babelfish-ddl-exports"></a>

En las versiones 2.4.0 y 3.1.0 de Babelfish, Babelfish admite la exportación de DDL con varias herramientas. Por ejemplo, puede utilizar esta funcionalidad de SQL Server Management Studio (SSMS) para generar los scripts de definición de datos para diversos objetos de una base de datos Babelfish para Aurora PostgreSQL A continuación, puede utilizar los comandos DDL generados en este script para crear los mismos objetos en otra base de datos Babelfish para Aurora PostgreSQL o SQL Server. 

Babelfish permite exportaciones de DDL para los siguientes objetos en las versiones especificadas.


| Lista de objetos | 2.4.0 | 3.1.0 | 
| --- | --- | --- | 
| Tablas de usuario | Sí | Sí | 
| Claves principales | Sí | Sí | 
| Claves externas | Sí | Sí | 
| Restricciones únicas | Sí | Sí | 
| Índices | Sí | Sí | 
| Restricciones de comprobación | Sí | Sí | 
| Vistas | Sí | Sí | 
| Procedimientos almacenados | Sí | Sí | 
| Funciones definidas por el usuario | Sí | Sí | 
| Funciones con valores de tabla | Sí | Sí | 
| Desencadenadores | Sí | Sí | 
| Tipos de datos definidos por el usuario | No | No | 
| Tipos de tablas definidas por el usuario | No | No | 
| Usuarios | No | No | 
| Inicios de sesión | No | No | 
| Secuencias | No | No | 
| Roles | No | No | 

### Limitaciones con los DDL exportados
<a name="babelfish-ddl-exports-limitations"></a>
+ **Utilice escotillas de escape antes de volver a crear los objetos con los DDL exportados**: Babelfish no admite todos los comandos del script de DDL exportado. Utilice escotillas de escape para evitar los errores que se producen al volver a crear los objetos con los comandos de DDL en Babelfish. Para obtener más información acerca de las escotillas de escape, consulte [Administración de la gestión de errores de Babelfish con escotillas de escape](babelfish-strict.md).
+ **Objetos que contienen restricciones CHECK con cláusulas COLLATE explícitas**: los scripts con estos objetos generados desde una base de datos SQL Server tienen intercalaciones diferentes pero equivalentes a las de la base de datos Babelfish. Por ejemplo, algunas intercalaciones, como sql\$1latin1\$1general\$1cp1\$1cs\$1as, sql\$1latin1\$1general\$1cp1251\$1cs\$1as y latin1\$1general\$1cs\$1as, se generan como latin1\$1general\$1cs\$1as, que es la intercalación de Windows más cercana.