2009-11-18 12 views
10

Ho usato rencentemente SQL Server Migration Assistant per importare un database in SQL Server 2005. Ho notato che un certo numero di tabelle che sono state importate sono state ammesse con una nuova colonna denominata SSMA_timestamp.Timestamp SSMA. A cosa serve, come viene utilizzato?

Qualcuno può dirmi a cosa serve e come verrebbe utilizzato?

risposta

10

Penso che questo sia generato in modo che l'Assistente Migrazione possa rilevare le modifiche ai dati durante la migrazione.

A meno che non si stia continuando a utilizzare Access come front-end in questo specifico database, è stata eseguita la migrazione a SQL Server (in tal caso, vedere la risposta di Simon), non penso che verranno utilizzati per qualcosa dopo il completamento della migrazione, quindi dovrebbe essere sicuro di rilasciare queste nuove colonne una volta che sei sicuro che tutto sia fatto.

+0

Grazie per l'informazione! – Chris

+0

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). –

+0

@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à. –

15

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.

Dall'articolo MSDN Optimizing Microsoft Office Access Applications Linked to SQL Server:

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à.

+1

Invece di postare link ad alcuni forum su alcuni siti che potrebbero scomparire domani, perché non pubblicare qui la parte rilevante delle informazioni, quindi questa risposta sarà utile alle persone indipendentemente da ciò che accade su questi altri siti? –

+3

@ Aaron: buon punto. Ho modificato la mia risposta secondo il tuo suggerimento. Grazie. –