

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從 Babelfish 系統目錄取得資訊
<a name="babelfish-query-database"></a>

您可以透過查詢許多與 SQL Server 中所使用相同的系統檢視，來取得儲存在 Babelfish 叢集中資料庫物件的相關資訊。Babelfish 的每個新版本都增加對對更多系統檢視的支援。如需目前可用的可用檢視清單，請參閱 [SQL Server system catalog views](#system-catalog-table) 資料表。

這些系統檢視會提供來自系統目錄 (`sys.schemas`) 的資訊。若為 Babelfish，這些檢視包含 SQL Server 和 PostgreSQL 系統結構描述。若查詢 Babelfish 中的系統目錄資訊，您可以使用 TDS 連接埠或 PostgreSQL 連接埠，如以下範例所示。
+ **使用 `sqlcmd` 或其他 SQL Server 用戶端查詢 T-SQL 連接埠**。

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

  此查詢會傳回 SQL Server 和 Aurora PostgreSQL 系統結構描述，如下所示。

  ```
  name      
  ---------------------------------------------------------
  demographic_dbo          
  public                                                    
  sys                           
  master_dbo
  tempdb_dbo
  ...
  ```
+ **使用 `psql` 或 `pgAdmin` 查詢 PostgreSQL 連接埠**。此範例使用 `psql` 清單結構描述中繼命令 (`\dn`)：

  ```
  babelfish_db=> \dn
  ```

  查詢會傳回與在 T-SQL 連接埠上由 `sqlcmd` 傳回相同的結果集。

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

## Babelfish 中可用的 SQL Server 系統目錄
<a name="babelfish-query-database.system-catalogs"></a>

在下表中，您可以找到 Babelfish 中目前實作的 SQL Server 檢視。如需 SQL Server 中系統目錄的詳細資訊，請參閱 Microsoft 文件中的[系統目錄檢視 (Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/catalog-views-transact-sql?view=sql-server-ver16)。<a name="system-catalog-table"></a>


| 檢視表名稱 | 描述或 Babelfish 限制 (如果有) | 
| --- | --- | 
| `sys.all_columns` | 所有資料表和檢視表中的所有資料欄 | 
| `sys.all_objects` | 所有結構描述中的所有物件 | 
| `sys.all_sql_modules` | `sys.sql_modules` 與 `sys.system_sql_modules` 的聯集 | 
| `sys.all_views` | 所有結構描述中的所有檢視表 | 
| `sys.columns` | 使用者定義的資料表和檢視表中的所有資料欄 | 
| `sys.configurations` | Babelfish 支援限於單個唯讀組態。 | 
| `sys.data_spaces` | 每個資料空間包含一列。這可以是檔案群組、分割區配置或 FILESTREAM 資料檔案群組。 | 
| `sys.database_files` | 此各資料庫檢視中的每一列代表資料庫中的每一個檔案，如同儲存在資料庫本身中。 | 
| `sys.database_mirroring` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.database\$1mirroring](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-mirroring-transact-sql?view=sql-server-ver16)。 | 
| `sys.database_principals` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.database\$1principals](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16)。 | 
| `sys.database_role_members` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 
| `sys.databases` | 所有結構描述中的所有資料庫 | 
| `sys.dm_exec_connections` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 
| `sys.dm_exec_sessions` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 
| `sys.dm_hadr_database_replica_states` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 
| `sys.dm_os_host_info` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 
| `sys.endpoints` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.endpoints](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-endpoints-transact-sql?view=sql-server-ver16)。 | 
| `sys.indexes` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.indexes](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-indexes-transact-sql?view=sql-server-ver16)。 | 
| `sys.languages` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.languages](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-fulltext-languages-transact-sql?view=sql-server-ver16)。 | 
| `sys.schemas` | 所有結構描述 | 
| `sys.server_principals` | 所有登入和角色 | 
| `sys.sql_modules` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.sql\$1modules](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql?view=sql-server-ver16)。 | 
| `sys.sysconfigures` | Babelfish 支援限於單個唯讀組態。 | 
| `sys.syscurconfigs` | Babelfish 支援限於單個唯讀組態。 | 
| `sys.sysprocesses` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.sysprocesses](https://docs.microsoft.com/en-us/sql/relational-databases/system-compatibility-views/sys-sysprocesses-transact-sql?view=sql-server-ver16)。 | 
| `sys.system_sql_modules` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 
| `sys.table_types` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [sys.table\$1types](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-table-types-transact-sql?view=sql-server-ver16)。 | 
| `sys.tables` | 所有結構描述中的所有資料表 | 
| `sys.xml_schema_collections` | 如需相關資訊，請參閱 Microsoft Transact-SQL 文件中的 [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)。 | 

PostgreSQL 實作的系統目錄類似於 SQL Server 物件目錄檢視表。如需完整的系統目錄清單，請參閱 PostgreSQL 文件中的[系統目錄](https://www.postgresql.org/docs/current/catalogs.html)。

## Babelfish 支援的 DDL 匯出
<a name="babelfish-ddl-exports"></a>

針對 Babelfish 2.4.0 和 3.1.0 版，Babelfish 支援使用多種工具匯出 DDL。例如，您可以使用 SQL Server Management Studio (SSMS) 的這項功能，為 Babelfish for Aurora PostgreSQL 資料庫的各種物件生成資料定義指令碼。然後，您可以使用此指令碼中生成的 DDL 命令，在另一個 Babelfish for Aurora PostgreSQL 或 SQL Server 資料庫中建立相同物件。

Babelfish 支援指定版本中，以下物件的 DDL 匯出。


| 物件清單 | 2.4.0 | 3.1.0 | 
| --- | --- | --- | 
| 使用者資料表 | 是 | 是 | 
| 主索引鍵 | 是 | 是 | 
| 外部索引鍵 | 是 | 是 | 
| 唯一限制條件 | 是 | 是 | 
| 索引 | 是 | 是 | 
| 檢查限制 | 是 | 是 | 
| 檢視 | 是 | 是 | 
| 預存程序 | 是 | 是 | 
| 使用者定義的函數 | 是 | 是 | 
| 資料表值函數 | 是 | 是 | 
| 觸發 | 是 | 是 | 
| 使用者定義的資料類型 | 否 | 否 | 
| 使用者定義的資料表類型 | 否 | 否 | 
| 使用者 | 否 | 否 | 
| 登入 | 否 | 否 | 
| 序列 | 否 | 否 | 
| 角色 | 否 | 否 | 

### 匯出 DDL 的限制
<a name="babelfish-ddl-exports-limitations"></a>
+ **使用逃生艙，再以匯出的 DDL 建立物件** – Babelfish 不支援匯出的 DDL 指令碼中所有命令。使用逃生艙，避免在 Babelfish 中從 DDL 命令重新建立物件時造成錯誤。如需有關逃生艙的詳細資訊，請參閱 [使用逃生艙管理 Babelfish 錯誤處理](babelfish-strict.md)。
+ **有明確 COLLATE 子句的 CHECK 限制條件之物件** — 具有從 SQL Server 資料庫生成物件的指令碼，具有與 Babelfish 資料庫不同但相等的定序。有些定序是最近的 Windows 定序，例如 sql\$1latin1\$1general\$1cp1\$1cs\$1as, sql\$1latin1\$1general\$1cp1251\$1cs\$1as 或 latin1\$1general\$1cs\$1as are generated as latin1\$1general\$1cs\$1as。