View a markdown version of this page

從 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 ...
  • 使用 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 系統目錄

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

檢視表名稱 描述或 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_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 匯出

針對 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 的限制

  • 使用逃生艙,再以匯出的 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。