Linked Server: consultando o PostGreSQL através do MS SQL Server

Antes de tudo é necessário instalar os drivers ODBC do PostGreSQL no servidor em que se encontra o MS SQL Server.

Depois registre um System DSN, ou Fonte de Dados do Sistema. Para isto basta se encaminhar para:

Painel de Controle → Ferramentas Administrativas → Fontes de Dados ODBC.

Basta preencher as caixinhas e depois testar. Com a conexão funcionando,  agora é hora de se criar um Linked Server entre o MS SQL Server e o PostGreSQL.

EXEC master.dbo.sp_droplinkedsrvlogin
          @rmtsrvname=N'LINKEDSERVERNAME'
	, @locallogin=NULL

EXEC master.dbo.sp_dropserver
	  @server = 'LINKEDSERVERNAME'

EXEC master.dbo.sp_addlinkedserver
	  @server = 'LINKEDSERVERNAME'
	, @provider = 'Postgresql OLE DB'
	, @datasrc = 'Postgresql ANSI'

EXEC master.dbo.sp_addlinkedsrvlogin
	  @rmtsrvname=N'LINKEDSERVERNAME'
	, @useself=N'False'
	, @locallogin=NULL
	, @rmtuser='usuariopostgres'
	, @rmtpassword='senhapostgres'

Agora você pode fazer consultas assim:

SELECT * FROM openquery(LINKEDSERVERNAME, 'SELECT * FROM TABELADOPOSTGRES')

Posts relacionados

Uma ideia sobre “Linked Server: consultando o PostGreSQL através do MS SQL Server

  1. Claudio Souto

    Muito bom o post, mas para mim não está funcionando.
    da o seguinte erro:

    Server: Msg 7403, Level 16, State 1, Line 1
    Could not locate registry entry for OLE DB provider ‘Postgresql OLE DB’.
    OLE DB error trace [Non-interface error: Provider not registered.].

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>