sp_execute_postgresql
您可以從 T-SQL 端點執行 PostgreSQL 陳述式。這樣可簡化您的應用程式,因為您不需要結束 T-SQL 連接埠,即可執行這些陳述式。
語法
sp_execute_postgresql [ @stmt = ] statement
引數
- [ @stmt ] 陳述式
-
引數屬於資料類型 varchar。此引數接受 PG 方言陳述式。
注意
您只能傳遞一個 PG 方言陳述式作為引數,否則其會引發下列錯誤。
1>exec sp_execute_postgresql 'create extension pg_stat_statements; drop extension pg_stat_statements'2>go
Msg 33557097, Level 16, State 1, Server BABELFISH, Line 1 expected 1 statement but got 2 statements after parsing
使用須知
CREATE EXTENSION
建立新的擴充功能並將其載入至目前資料庫。
1>EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ]<extension name>[ WITH ] [SCHEMAschema_name] [VERSIONversion]';2>go
下列範例示範如何建立擴充功能:
1>EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';2>go
請使用下列命令存取擴充功能物件:
1>select * from pg_stat_statements;2>go
注意
如果在擴充功能建立期間未明確提供結構描述名稱,則依預設,擴充功能會安裝在公開結構描述中。您必須提供結構描述限定詞來存取擴充功能物件,如下所述:
1>select * from [public].pg_stat_statements;2>go
支援的擴充功能
Aurora PostgreSQL 提供的以下擴充功能可與 Babelfish 搭配使用。
pg_stat_statementstds_fdwfuzzystrmatch
限制
使用者必須在 T-SQL 上具有 sysadmin 角色,並在 postgres 上具有 rds_superuser,才能安裝擴充功能。
擴充功能無法安裝在使用者建立的結構描述中,也不能安裝在 master、tempdb 和 msdb 資料庫的 dbo 和客體結構描述中。
不支援 CASCADE 選項。
ALTER EXTENSION
您可以使用 ALTER Extension 升級到新的擴充功能版本。
1>EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';2>go
限制
您只能使用 ALTER Extension 陳述式來升級擴充功能的版本。不支援其他操作。
DROP EXTENSION
刪除指定的擴充功能。您也可以使用 if exists 或 restrict 選項刪除擴充功能。
1>EXEC sp_execute_postgresql 'drop extension <extension name>';2>go
限制
不支援 CASCADE 選項。