Re: Simulieren einer Informix - RowID

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Elmar Boye (ElmarB_at_gmx.net)
Date: 01/25/05


Date: Tue, 25 Jan 2005 15:42:14 +0100

Hallo Dieter,

Dieter Noeth <dnoeth@gmx.de> schrieb ...
> Elmar Boye schrieb:
>
>> P.S: Eine Informix (oder Oracle) ROWID hatte nie was in einer
>> relationalen Datenbank zu suchen, dafür gibts einen Primärschlüssel
>> und auch Identity ist in der Hinsicht nur eine Krücke.
>
> Beim SS2k (davor hab ich's nie getestet) gibt es auch eine RowID, die
> file:page:slot enthält und die man sogar abfragen kann, bzw. konnte,
> ab irgendeinem Service Pack (SP3?) geht das leider nicht mehr.

Diese Adresse stellt zwar gleiches da wie eine ROWID. Wobei der
SQL Server sie aber niemals so persistent macht wie z. B. Oracle
in seine ROWID reingebogen hat (bei Informix weiss ich jetzt nicht,
wieviel sie Oracle nachgeahmt haben - das verliess mich bei C-ISAM
und SE/3.0x Online ;-).

> Es sind die gleichen Daten, die z.B. bei sp_lock oder einigen
> DBCC_Befehlen auftauchen.

Da sich der SQL Server beim Defragmentieren oder Teilen von Seiten
jede Freiheit rausnimmt, ist jegliche Gültigkeit u. U. dort extrem
kurz.

> Nimm mal einen SS2k ohne SP und eine Tabelle ohne Clustered Index
> und frag dann mal die Spalte "%%bmk%%" ab...

Eine RTM habe ich hier nicht mehr installiert...

Die Herkunft dürfte eher durch scrollable Cursor entstehen.
Tatsache ist bis heute, dass ein Resultset im TDS Stream durchaus
mehr Spalten liefern kann als angezeigt (beim .NET Provider gut
zu sehen - z. B. beim Timestamp). Die werden aber normalerweise von
der Schnittstelle früh ausgeblendet.
Nur ist Lebensdauer der Daten da vom Transaktionskontext abhängig,
sobald die schützenden Sperren weg sind mag die Seite schon wieder
wo anders sein.

Und hilft somit bei Problemen wie Holgers nicht weiter.
Ich sah das P.S. mehr als "Stuppser" in die Richtung sich von
solch platformabhängigen Lösungen zu verabschieden, wenn er denn
schon am Portieren ist.

Gruss
Elmar



Relevant Pages

  • Re: Equivalent to rowid in Oracle...
    ... I actually meant to refer to rownum, not rowid - just haven't ... > the SQL Server Timestamp data type. ... RowID actually IS the internal Oracle pointer ... > Server Timestamp is, as was implicit in my first posting, that the SQL ...
    (microsoft.public.sqlserver.server)
  • Re: BINARY_CHECKSUM IN ORACLE
    ... ROWID won't do in this case, ... There's no equivalent in Oracle, ... and it's not probably possible to create one that will exactly match ... used in the SQL Server application being ported? ...
    (comp.databases.oracle.misc)
  • Row id
    ... Is there any way to access the row id in the sql server ... in oracle we have ROWID but i was unable to find it in sql ...
    (microsoft.public.sqlserver.programming)
  • Row Number when Selecting Records in Select Query
    ... or serial no) but i don't know sql server provides it or not as in oracle ... rowid and rownum is available. ...
    (microsoft.public.sqlserver.programming)
  • Row Number when Selecting Records in Select Query
    ... or serial no) but i don't know sql server provides it or not as in oracle ... rowid and rownum is available. ...
    (microsoft.public.sqlserver.programming)