本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 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.schemas2>
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 限制 (如果有) |
---|---|
|
所有資料表和檢視表中的所有資料欄 |
|
所有結構描述中的所有物件 |
|
|
|
所有結構描述中的所有檢視表 |
|
使用者定義的資料表和檢視表中的所有資料欄 |
|
Babelfish 支援限於單個唯讀組態。 |
|
每個資料空間包含一列。這可以是檔案群組、分割區配置或 FILESTREAM 資料檔案群組。 |
|
此各資料庫檢視中的每一列代表資料庫中的每一個檔案,如同儲存在資料庫本身中。 |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.database_mirroring |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.database_principals |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.database_role_members |
|
所有結構描述中的所有資料庫 |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_exec_connections |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_exec_sessions |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_hadr_database_replica_states |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.dm_os_host_info |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.endpoints |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.indexes |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.languages |
|
所有結構描述 |
|
所有登入和角色 |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.sql_modules |
|
Babelfish 支援限於單個唯讀組態。 |
|
Babelfish 支援限於單個唯讀組態。 |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.sysprocesses |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.system_sql_modules |
|
如需相關資訊,請參閱 Microsoft Transact-SQL 文件中的 sys.table_types |
|
所有結構描述中的所有資料表 |
|
如需相關資訊,請參閱 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。