Sintaxe INSERT de consulta aberta
-
26-12-2019 - |
Pergunta
Estou tentando aprender openquery.Eu tenho um servidor MSSQL que possui um servidor vinculado MySQL_testing.Agora, tenho lutado com a sintaxe do openquery a manhã toda e percebi que aqui provavelmente há pessoas muito mais inteligentes que sabem como ela funciona.
Então, qual é a sintaxe de trabalho para o seguinte
INSERT INTO OPENQUERY
(test_MYSQL, 'INSERT INTO test.catalog_category_product VALUES (1, 1, 1)')
O erro é
O provedor OLE DB "MSDASQL" para servidor vinculado indica que o objeto não possui colunas ou o usuário atual não possui permissões nesse objeto.
Verifiquei se o usuário "root" em xx.xxx.xxx.xxx possui direitos de inserção, atualização, etc.
O que poderia causar isso?
Agradeço antecipadamente!
Solução
Você precisa mover a cláusula 'VALUES' para fora da sua consulta aberta e selecionar as 'COLUNAS' nas quais deseja inserir, veja o exemplo abaixo
INSERT OPENQUERY(test_MYSQL, 'SELECT COLUMN1, COLUMN2, COLUMN2 FROM test.catalog_category_product')
VALUES (1, 1, 1)
Aqui está o artigo sobre OPENQUERY
Espero que isto ajude