Le colonne SSMA_timestamp aggiunte non vengono utilizzate solo durante la migrazione. In realtà aiutano a evitare errori quando Access aggiorna i record nelle tabelle collegate a SQL Server. Pertanto, se si utilizza ancora un front-end Access collegato al database di SQL Server migrato, è consigliabile non eliminare le colonne SSMA_timestamp.
Supporting Controlli Concorrenza
Probabilmente la principale causa di problemi di aggiornabilità nelle tabelle Office Access-linked è che Office Access non è in grado di verificare se i dati sulle partite di server l'ultimo oggetto recuperato dal dynaset in fase di aggiornamento. Se Office Access non può eseguire questa verifica, si presuppone che la riga del server sia stata modificata o eliminata da un altro utente e interrompa l'aggiornamento.
Esistono diversi tipi di dati che Office Access non è in grado di controllare in modo affidabile per i valori corrispondenti. Questi includono tipi di oggetti di grandi dimensioni, come testo, ntext, immagine e i tipi varchar (max), nvarchar (max) e varbinary (max) introdotti in SQL Server 2005. Inoltre, i tipi numerici a virgola mobile, come quelli reali e float, sono soggetti a problemi di arrotondamento che possono rendere imprecisi i confronti, con il risultato di aggiornamenti annullati quando i valori non sono realmente cambiati. Office Access ha anche problemi nell'aggiornamento di tabelle contenenti colonne di bit che non hanno un valore predefinito e che contengono valori nulli.
Un modo rapido e semplice per ovviare a questi problemi è aggiungere una colonna di timestamp alla tabella su SQL Server. I dati in una colonna timestamp sono completamente estranei alla data o all'ora. Invece, è un valore binario che è garantito essere unico nel database e aumentare automaticamente ogni volta che un nuovo valore viene assegnato a qualsiasi colonna della tabella. Il termine standard ANSI per questo tipo di colonna è rowversion. Questo termine è supportato in SQL Server.
Office Access rileva automaticamente quando una tabella contiene questo tipo di colonna e la utilizza nella clausola WHERE di tutte le istruzioni UPDATE e DELETE che influiscono su tale tabella. Ciò è più efficace della verifica che tutte le altre colonne abbiano ancora gli stessi valori che avevano quando il dynaset era stato aggiornato l'ultima volta.
L'Assistente migrazione SQL Server per Office Access aggiunge automaticamente una colonna denominata SSMA_TimeStamp a qualsiasi tabella contenente tipi di dati che potrebbero influire sull'aggiornabilità.
Grazie per l'informazione! – Chris
Si noti che anche se questa risposta è stata contrassegnata come risposta, non è corretta (vedere la mia risposta di seguito che rimanda a una spiegazione dettagliata di cosa sono utilizzate le colonne SSMA_timestamp). –
@SimonTewsi quindi la mia risposta di tre anni a questa domanda di tre anni non è corretta nel singolo caso in cui continui a utilizzare Access come front-end, che l'OP non ha specificato che sta facendo, e tu down- votarmi? Buon spirito di comunità. –