Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Query a SQL Server database (tds_fdw)

Última atualização: Oct 10, 2026

Use a extensão tds_fdw para acessar dados em um banco de dados SQL Server.

Pré-requisitos

  • Certifique-se de que a sua instância do RDS PostgreSQL execute a versão principal 11 ou posterior do mecanismo.

  • Se uma instância atender ao requisito de versão principal, mas não for compatível com a extensão, atualize a versão secundária do mecanismo. Por exemplo, para uma instância do RDS PostgreSQL 17, a versão secundária do mecanismo deve ser 20241030 ou posterior. Para obter instruções, consulte Upgrade the minor engine version.

  • Adicione o bloco CIDR da VPC da sua instância do RDS PostgreSQL, como 172.xx.xx.xx/16, à lista de permissões de endereços IP da instância do SQL Server.

    Nota

    Na página Database Connection da sua instância do RDS PostgreSQL, confirme se o Network Type é VPC, anote o endereço IP e o bloco CIDR da VPC, como 172.x.x.x/16, e verifique se a Intranet Port é 5432.

Informações de contexto

O tds_fdw é um foreign data wrapper do PostgreSQL para conexão com bancos de dados que utilizam o protocolo Tabular Data Stream (TDS), como o Microsoft SQL Server.

Para mais detalhes, consulte a documentação oficial do tds_fdw.

Crie a extensão

Conecte-se à sua instância e execute o seguinte comando:

create extension tds_fdw;

Usar a extensão

  1. Crie um servidor externo. Por exemplo:

    CREATE SERVER mssql_svr
      FOREIGN DATA WRAPPER tds_fdw
      OPTIONS (servername '<endpoint>', port '<port>', database 'tds_fdw_test', tds_version '7.1');
    Nota

    Na definição do servidor, defina servername como o endpoint interno do SQL Server e port como a porta interna do SQL Server.

  2. Crie uma tabela externa. Selecione um dos seguintes métodos:

    • Use a opção table_name. Por exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (table_name 'dbo.mytable', row_estimate_method 'showplan_all');
    • Especifique as opções schema_name e table_name. Por exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
    • Para a opção query, defina o valor desejado. Por exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (query 'SELECT * FROM dbo.mytable', row_estimate_method 'showplan_all');
    • Mapeie colunas para nomes de colunas remotas. Por exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       col2 varchar OPTIONS (column_name 'data'))
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
  3. Crie um mapeamento de usuário. Por exemplo:

    CREATE USER MAPPING FOR postgres
      SERVER mssql_svr 
      OPTIONS (username 'sa', password '123456');
  4. Importe um schema externo. Por exemplo:

    IMPORT FOREIGN SCHEMA dbo
      EXCEPT (mssql_table)
      FROM SERVER mssql_svr
      INTO public
      OPTIONS (import_default 'true');