從 Babelfish 系統目錄取得資訊 - Amazon Aurora

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

從 Babelfish 系統目錄取得資訊

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

這些系統檢視會提供來自系統目錄 (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 ...
  • 使用 psqlpgAdmin 查詢 PostgreSQL 連接埠。此範例使用 psql 清單結構描述中繼命令 (\dn):

    babelfish_db=> \dn

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

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

Babelfish 中可用的 SQL Server 系統目錄

在下表中,您可以找到 Babelfish 中目前實作的 SQL Server 檢視。如需 SQL Server 中系統目錄的詳細資訊,請參閱 Microsoft 文件中的系統目錄檢視 (Transact-SQL)

檢視表名稱 描述或 Babelfish 限制 (如果有)

sys.all_columns

所有資料表和檢視表中的所有資料欄

sys.all_objects

所有結構描述中的所有物件

sys.all_sql_modules

sys.sql_modulessys.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_mirroring

sys.database_principals

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.database_principals

sys.database_role_members

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.database_role_members

sys.databases

所有結構描述中的所有資料庫

sys.dm_exec_connections

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_exec_connections

sys.dm_exec_sessions

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_exec_sessions

sys.dm_hadr_database_replica_states

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_hadr_database_replica_states

sys.dm_os_host_info

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_os_host_info

sys.endpoints

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.endpoints

sys.indexes

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.indexes

sys.languages

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.languages

sys.schemas

所有結構描述

sys.server_principals

所有登入和角色

sys.sql_modules

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.sql_modules

sys.sysconfigures

Babelfish 支援限於單個唯讀組態。

sys.syscurconfigs

Babelfish 支援限於單個唯讀組態。

sys.sysprocesses

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.sysprocesses

sys.system_sql_modules

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.system_sql_modules

sys.table_types

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.table_types

sys.tables

所有結構描述中的所有資料表

sys.xml_schema_collections

如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.xml_schema_collections

PostgreSQL 實作的系統目錄類似於 SQL Server 物件目錄檢視表。如需完整的系統目錄清單,請參閱 PostgreSQL 文件中的系統目錄

Babelfish 支援的 DDL 匯出

從巴貝魚 2.4.0 和 3.1.0 版本,巴貝魚支持使用各種工具的 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 的限制

  • 使用逃生艙,再以匯出的 DDL 建立物件 – Babelfish 不支援匯出的 DDL 指令碼中所有命令。使用逃生艙,避免在 Babelfish 中從 DDL 命令重新建立物件時造成錯誤。如需有關逃生艙的詳細資訊,請參閱 使用逃生艙管理 Babelfish 錯誤處理

  • 有明確 COLLATE 子句的 CHECK 限制條件之物件 — 具有從 SQL Server 資料庫生成物件的指令碼,具有與 Babelfish 資料庫不同但相等的定序。有些定序是最近的 Windows 定序,例如 sql_latin1_general_cp1_cs_as, sql_latin1_general_cp1251_cs_as 或 latin1_general_cs_as are generated as latin1_general_cs_as。