SQL Server Object - MySQL Linked Server
Pré-requisitos
Instalação do MySQL Connector/ODBC
Linked Server
O objecto Linked Server permite vincular o SQL Server a um servidor de dados externo. Este objecto do SQL Server permite fazer queries distribuídas e heterogéneas sobre fontes de dados OLE DB. Depois do Linked Server ser criado pela store procedure de sistema sp_addlinkedserver, as queries distribuídas podem ser executadas nesse servidor.
/****** Object: LinkedServer [MYSQL-DEV-ENV] ******/
EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL-DEV-ENV', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'Driver={MySQL ODBC 5.3 ANSI Driver};database=;option=134217728;server=;port=3306;uid='
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'MYSQL-DEV-ENV',@useself=N'False',@locallogin=NULL,@rmtuser=N'',@rmtpassword='########'
GO
Consulta com a função OpenQuery
SELECT * FROM OPENQUERY(MYSQL-DEV-ENV,'SELECT * FROM test_mysql.Profile WHERE Name = '''profilename''' LIMIT 0, 1000')
GO
No caso da função OpenQuery, o motor de SQL não vai tentar classificar a query nem verificar o que vai fazer, a query é pura e simplesmente enviada para o servidor de MySQL. O Parsing e a geração do plano de execução, bem como a aplicação de filtros, são executados no servidor remoto.
De uma forma geral, o OpenQuery é mais rápido que o Linked Server porque o motor de SQL não vai partir a query antes de a enviar para o MySQL, mas é mais indicado para invocações feitas com menos frequência.
Mais informação sobre acesso a fontes de dados remotas aqui.
Invocação de store procedure MySQL
exec ('CALL test_mysql.usp_Conference()') at [MYSQL-DEV-ENV]
GO
Referências: Create a linked server to MySQL from SQL Server, Access MySQL data from SQL Server via a Linked Server
Licença CC BY-SA 4.0
Silvia Pinhão Lopes, 9.6.18
Sem comentários: