INSERT com SELECT (INSERT INTO)

–Gravando o que não tem na MUNICIPIOS para FORNECEDORES

INSERT INTO ##TEMP_FORNECEDORES (DM_CODPRF,DM_NOME,DM_ENDER,DM_BAIRRO,DM_CEP,DM_MUN, DM_UF,DM_IBGE)
SELECT DM_CODPRF,DM_NOME,DM_ENDER,DM_BAIRRO,DM_CEP,DM_MUN, DM_UF,DM_IBGE FROM ##TEMP_MUNICIPIOS_1 WHERE DM_IBGE NOT IN (
SELECT DM_IBGE FROM ##TEMP_FORNECEDORES
)

INSERT INTO `respostas`  (IDENVIO, NOME, IDDESTINO)
  SELECT xoops_users.uid, xoops_users.uname,
         xoops_xoopscomments.com_id
         FROM xoops_users, xoops_xoopscomments
         WHERE xoops_users.uid = xoops_xoopscomments.com_ui
BEGIN
    FOR V_FUNC IN
        (SELECT * FROM funcionarios WHERE salario < 500) -- aqui vc usa o select que quiser
    LOOP
        INSERT
            INTO estagiarios
            (
                MATRICULA,
                NOME,
                ENDERECO,
                SALARIO
            )
            VALUES
            (
                V_FUNC.MATRICULA,
                V_FUNC.NOME,
                V_FUNC.ENDERECO,
                V_FUNC.SALARIO
            )
        ;
    END LOOP;
END;

Outro exemplo:

insert into master.dbo.tabela1(NUMSER)
(select serial_number from master.dbo.tabela2 where serial_number not in (select NUMSER from master.dbo.tabela1))

Não se coloca o “VALUES”