Re: Id aus einer anderen Tabelle

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



Hi Elmar,

ok, dass sehe ich ein.

Könnt mir jemand ein Bsp. für meine anforderung geben, wie ich es mit dem InsteadOf-Trigger machen könnte?

Wäre echt super.

danke+lg
Charlie

Elmar Boye schrieb:
Hallo Charlie,

Charlie Schaubmair <k.schaubmair@xxxxxxxxxxxx> schrieb ...

danke für den Lösungsansatz, aber jetzt hab ich die aller einfachste
Lösung gefunden:

Als default-Wert setzte ich in der tbl_test Tabelle den Primary-Key
auf zB 999999999 und wenn dann ein Insert gemacht wird, dann bekommt
der Datensatz zuerst den Primary-Key 999999999 und durch den Trigger
dann sofort einen neuen eindeutigen Primary-Key.

Kann ich dies ohne Probleme so machen, oder spricht da was dagegen?


Eine Menge: Sobald mehrere Benutzer Zeilen einfügen gibst Probleme,
da eine Primary Key Einschränkung vor der Ausführung des Triggers
geprüft wird.

Und innerhalb einer Transaktion wirds womöglich noch schlimmer,
da Du schnell mit Blockierungen und Deadlocks (wenn das für
mehrere Tabellen gilt) zu kämpfen haben wirst, da sich alles
um diese magische Zahl reisst.

Unabhängig davon kommt hinzu, dass die meisten Schnittstellen (wie
z. B. ADO) davon ausgehen, dass ein Primary Key unveränderlich ist.
Und Probleme bekommen wenn sie erneut auf die Zeile zugreifen wollen
(schlimmstenfalls könnten sie sogar auf diefalsche 99...99 zugreifen).

Und zudem niemand daran gehindert wird, den Default einfach zu
überschreiben (... und da fällt mir vermutlich gleich noch mehr
ein ;-)

Da Du die Tage bereits nach den Guids gefragt hattest:
Wieso nicht die? Das ist allemale besser.

Gruss
Elmar

.



Relevant Pages

  • Re: Help with INSERT TRIGGER - fails with error.
    ... You didn't declare any PRIMARY KEY in this database. ... In an INSERT trigger, ... but I can't get it to work because it references ntext fields. ...
    (comp.databases.ms-sqlserver)
  • Re: Whats wrong with this trigger
    ... the app that uses this data is .NET. ... > same values for the primary key as the ones used in the original tables. ... >>>update trigger that inserts an audit row into a view. ... >>>identity and so is the view that I'm inserting the audit row into. ...
    (microsoft.public.access.adp.sqlserver)
  • Re: Trigger for updated rows when PK changed
    ... I guess in pure relational theory updating a pk is meaningless - it's always ... Presumably a row-level trigger in something like Oracle would reflect this ... John ... > other than the primary key to uniquely the rows of your table, ...
    (microsoft.public.sqlserver.programming)
  • Re: Trigger
    ... CREATE TRIGGER MyTrigger ... -- Here is the first calculation. ... columns and make sure you use the entire primary key in the EXISTS ... Make sure your sample data illustrates what you ...
    (microsoft.public.sqlserver.programming)
  • Re: Triggers - Inserted and Deleted tables cross join?
    ... > I am creating a trigger that runs for update on table X that then updates ... > The user needs to be able to change the primary key on table X and the old ... There is no guarantee about the order of records in INSERTED and DELETED, ... is no way to correlate the rows in INSERTED and DELETED. ...
    (microsoft.public.sqlserver.programming)