Tipul de date SQL Server TimeStamp (Programare, Server Sql)

Frederico Almeida a intrebat.

Aș dori să știu care este scopul TimeStamp tipului de date în SQL Server.

Deoarece este binar, nu este lizibil pentru oameni și nu pot converti în datetime sau orice alt tip. Cum nu folosim nici un fel de replicare, nu are sens pentru mine.

Motivul pentru care întreb este că am moștenit o bază de date în care majoritatea tabelelor au un tip TimeStamp coloană și nu sunt capabil să fac o conversie

INSERT INTO SELECT *

sau

SELECT * INTO

OK, nu am făcut niciodată acest lucru pe proceduri sau în orice scenariu de producție, dar fac foarte des în dezvoltare pentru a crea clone ale unei tabele sau pentru a copia seturi de date mai mici în tabele temporare.

Este sigur să renunț la aceste coloane? Ele nu sunt interogate nicăieri în sistem.

Vă mulțumesc tuturor!

Comentarii

  • Cred că această postare ar trebui să vă răspundă la întrebare –  > Por Hill.
  • Am folosit-o pentru a verifica dacă altcineva a actualizat rândul de când a fost preluat din baza de date.  > Por James Z.
1 răspunsuri
Lasse V. Karlsen

Acestea sunt utilizate de obicei pentru detectarea conflictelor.

Ori de câte ori introduceți sau actualizați un rând în baza de date, o valoare nouă și unică a ștampilei temporale este plasată în câmpul „timestamp” din rândul respectiv.

Acest lucru înseamnă că puteți detecta următorul scenariu:

  1. Recuperați unul sau mai multe rânduri din baza de date.
  2. Efectuați modificări ale acestor rânduri, în memorie
  3. un alt proces actualizează unul sau mai multe dintre aceste rânduri în baza de date.
  4. Doriți să actualizați baza de date, dar acum trebuie să gestionați conflictul, să interogați din nou rândurile pe care celălalt proces le-a modificat etc.

Punctul 4 poate fi detectat cu ajutorul marcajelor temporale. În cazul în care marca temporală a oricăruia dintre rândurile pe care le-ați interogat la punctul 1 s-a schimbat, atunci rândurile nu mai sunt cele pe care le-ați obținut la punctul 1.

Comentarii

  • Nimeni de aici nu vă poate spune dacă este sigur sau nu să renunțați la acele coloane. –  > Por Lasse V. Karlsen.
  • Sunt de acord, cred că cel mai sigur este să specificați coloanele atunci când trebuie să faceți un INSERT INTO pentru tabelul dev. –  > Por SQLChao.
  • Am renunțat la acel câmp și am creat un câmp datetime2 pentru a gestiona detectarea conflictelor. Acum fac toate testele posibile și QA. Dacă voi avea vreun dezavantaj, vă voi anunța. Mulțumesc, băieți! –  > Por Frederico Almeida.