

# Obter informações do catálogo de sistemas do Babelfish
<a name="babelfish-query-database"></a>

Para obter informações sobre os objetos de banco de dados armazenados no cluster do Babelfish, consulte muitas das mesmas visualizações do sistema utilizadas no SQL Server. Cada nova versão do Babelfish adiciona compatibilidade com mais visualizações do sistema. Para obter uma lista das visualizações atualmente disponíveis, consulte a tabela [SQL Server system catalog views](#system-catalog-table). 

Essas visualizações do sistema fornecem informações do catálogo de sistemas (`sys.schemas`). No caso do Babelfish, essas visualizações contêm esquemas de sistema SQL Server e PostgreSQL. Para consultar o Babelfish para obter informações de catálogo de sistemas, você pode usar a porta do TDS ou a porta do PostgreSQL, conforme mostrado nos exemplos a seguir.
+ **Consulte a porta do T-SQL usando `sqlcmd` ou outro cliente do SQL Server**.

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

  Essa consulta retorna esquemas de sistema do SQL Server e do Aurora PostgreSQL, conforme mostrado a seguir.

  ```
  name      
  ---------------------------------------------------------
  demographic_dbo          
  public                                                    
  sys                           
  master_dbo
  tempdb_dbo
  ...
  ```
+ **Consulte a porta do PostgreSQL usando `psql` ou `pgAdmin`**. Este exemplo usa o metacomando de esquemas da lista `psql` (`\dn`):

  ```
  babelfish_db=> \dn
  ```

  A consulta retorna o mesmo conjunto de resultados que o retornado por `sqlcmd` na porta do T-SQL.

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

## Catálogos de sistemas do SQL Server disponíveis no Babelfish
<a name="babelfish-query-database.system-catalogs"></a>

Na tabela a seguir, você pode encontrar as visualizações do SQL Server implementadas atualmente no Babelfish. Para ter mais informações sobre os catálogos de sistemas no 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) (Visualizações do catálogo de sistemas (Transact-SQL) na documentação da Microsoft.<a name="system-catalog-table"></a>


| Visualizar nome | Descrição ou limitação do Babelfish (se houver) | 
| --- | --- | 
| `sys.all_columns` | Todas as colunas em todas as tabelas e visualizações | 
| `sys.all_objects` | Todos os objetos em todos os esquemas | 
| `sys.all_sql_modules` | A união de `sys.sql_modules` e `sys.system_sql_modules` | 
| `sys.all_views` | Todas as visualizações em todos os esquemas | 
| `sys.columns` | Todas as colunas em tabelas e visualizações definidas pelo usuário | 
| `sys.configurations` | Compatibilidade do Babelfish limitada a uma única configuração somente leitura. | 
| `sys.data_spaces` | Contém uma linha para cada espaço de dados. Isso pode ser um grupo de arquivos, um esquema de partição ou um grupo de arquivos de dados FILESTREAM. | 
| `sys.database_files` | Uma visualização por banco de dados que contém uma linha para cada arquivo de um banco de dados, conforme armazenado no próprio banco de dados. | 
| `sys.database_mirroring` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL.  | 
| `sys.database_principals` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.database_role_members` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.databases` | Todos os bancos de dados em todos os esquemas | 
| `sys.dm_exec_connections` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.dm_exec_sessions` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL.  | 
| `sys.dm_hadr_database_replica_states` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.dm_os_host_info` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.endpoints` | Para ter mais informações, consulte [sys.endpoints](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-endpoints-transact-sql?view=sql-server-ver16) na documentação do Microsoft Transact-SQL. | 
| `sys.indexes` | Para ter mais informações, consulte [sys.indexes](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-indexes-transact-sql?view=sql-server-ver16) na documentação do Microsoft Transact-SQL. | 
| `sys.languages` | Para ter mais informações, consulte [sys.languages](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-fulltext-languages-transact-sql?view=sql-server-ver16) na documentação do Microsoft Transact-SQL.  | 
| `sys.schemas` | Todos os esquemas | 
| `sys.server_principals` | Todos os logins e funções | 
| `sys.sql_modules` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.sysconfigures` | Compatibilidade do Babelfish limitada a uma única configuração somente leitura. | 
| `sys.syscurconfigs` | Compatibilidade do Babelfish limitada a uma única configuração somente leitura. | 
| `sys.sysprocesses` | Para ter mais informações, consulte [sys.sysprocesses](https://docs.microsoft.com/en-us/sql/relational-databases/system-compatibility-views/sys-sysprocesses-transact-sql?view=sql-server-ver16) na documentação do Microsoft Transact-SQL. | 
| `sys.system_sql_modules` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.table_types` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 
| `sys.tables` | Todas as tabelas em um esquema | 
| `sys.xml_schema_collections` | Para ter mais informações, 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) na documentação do Microsoft Transact-SQL. | 

O PostgreSQL implementa catálogos do sistema que são semelhantes às visualizações do catálogo de objetos do SQL Server. Para obter uma lista completa de catálogos do sistema, consulte o tópico sobre [Catálogos do sistema](https://www.postgresql.org/docs/current/catalogs.html), na documentação do PostgreSQL.

## Exportações de DDL compatíveis com o Babelfish
<a name="babelfish-ddl-exports"></a>

Nas versões 2.4.0 e 3.1.0 do Babelfish, ele é compatível com exportações de DDL de várias ferramentas. Por exemplo, você pode usar essa funcionalidade do SQL Server Management Studio (SSMS) para gerar os scripts de definição de dados para vários objetos em um banco de dados Babelfish para Aurora PostgreSQL. Você pode então usar os comandos DDL gerados nesse script para criar os mesmos objetos em outro banco de dados Babelfish para Aurora PostgreSQL ou SQL Server. 

O Babelfish é compatível com exportações de DDL para os objetos a seguir nas versões especificadas.


| Lista de objetos | 2.4.0 | 3.1.0 | 
| --- | --- | --- | 
| Tabelas de usuários | Sim | Sim | 
| Chaves primárias | Sim | Sim | 
| Chaves externas | Sim | Sim | 
| Restrições exclusivas | Sim | Sim | 
| Índices | Sim | Sim | 
| Restrições de verificação | Sim | Sim | 
| Visualizações | Sim | Sim | 
| Procedimentos armazenados | Sim | Sim | 
| Funções definidas pelo usuário | Sim | Sim | 
| Funções com valor de tabela | Sim | Sim | 
| Acionadores | Sim | Sim | 
| Tipos de dados definidos pelo usuário | Não | Não | 
| Tipos de tabela definidos pelo usuário | Não | Não | 
| Usuários | Não | Não | 
| Logins | Não | Não | 
| Sequências | Não | Não | 
| Perfis | Não | Não | 

### Limitações com os DDLs exportados
<a name="babelfish-ddl-exports-limitations"></a>
+ **Use hatches de escape antes de recriar os objetos com os DDLs exportados**: o Babelfish não é compatível com todos os comandos no script DDL exportado. Use hatches de escape para evitar erros causados ao recriar os objetos dos comandos DDL no Babelfish. Para ter mais informações sobre hatches de escape, consulte [Gerenciar o tratamento de erros do Babelfish com hatches de escape](babelfish-strict.md)
+ **Objetos contendo restrições CHECK com cláusulas COLLATE explícitas**: os scripts com esses objetos gerados por meio de um banco de dados SQL Server têm agrupamentos diferentes, mas equivalentes, como no banco de dados Babelfish. Por exemplo, alguns agrupamentos, como sql\$1latin1\$1general\$1cp1\$1cs\$1as, sql\$1latin1\$1general\$1cp1251\$1cs\$1as e latin1\$1general\$1cs\$1as são gerados como latin1\$1general\$1cs\$1as, que é o agrupamento mais próximo do Windows.