Estou tentando usar o Access como front-end para um banco de dados SQL Server 2017. Os objetos que me interessam são 6 tabelas temporais e uma view unindo-as. Criei uma fonte de dados de usuário ODBC e vinculei as tabelas e a exibição. Para a exibição, criei um gatilho em vez de atualização que atualiza as tabelas subjacentes e funciona bem.
Como as chaves primárias das tabelas subjacentes são de identidade, imaginei que seria mais fácil inserir/excluir diretamente nas tabelas subjacentes em vez de por meio da exibição (precisei ao SET IDENTITY_INSERT ON
manipular a exibição via SQL).
Posso adicionar uma linha a uma das tabelas sem problemas, mas quando tento excluir ou atualizar uma linha na tabela, recebo um erro dizendo "Reserverat fel (-7776). Det finns inget meddelande för felet". Traduzido livremente, seria algo como "Erro reservado (-7776). Não há mensagem para o erro".
Eu visito o mundo do Windows regularmente a cada 20 anos ou mais, então não tenho nenhuma pista real sobre por onde começar a procurar pistas sobre qual pode ser o erro. Alguma percepção?
O engraçado é que se eu criar uma view que una duas das tabelas (a chave primária de uma das tabelas também é única na view), posso atualizar a view, e a tabela subjacente também é atualizada (não ao invés de trigger necessário).
Também é possível inserir uma nova linha (para excluir parece que vou precisar de um em vez de um gatilho). Então, acho que isso é uma solução alternativa, mas parece bastante estranho que eu possa atualizar a exibição, mas não a tabela.
Acesso (eu acho) não parece gostar muito
SysStartTime
eSysEndTime
colunas. Se eu mascará-los em uma exibição e vincular a exibição no Access, tanto a atualização quanto a inserção funcionarão. Exemplo:Para uma junção trivial como essa, o SQL Server descobre como lidar com a inserção/atualização, portanto, em vez de gatilhos, não são necessários.
A resposta em is-is-possible-to-update-sql-server-2016-temporal-tables-from-access indica que o problema tem a ver com a precisão dos carimbos de data/hora nas colunas Sys.... Não verifiquei que diminuir a precisão ajudaria, mas pode valer a pena alguém ler essa resposta