Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Moinsen,

Ich habe da mal ne Frage.

Und zwar will ich in einem SQL Server 2012 einen Datensatz in Tabelle a und Tabelle b schreiben und habe in Tabelle b die ID von a als FK.

Wie greife ich nun direkt beim Erstellen des Datensatzes die ID in a die ja dann erst gesetzt wird ab um sie in b mit einzutragen???

Hat da jemand von euch nen Stichwort oder ne Idee wie ich das Umsetzen kann?

Vielen Dank im Voraus

Doc

AFAIK gar nicht ;)

Wenn du kein Framework wie Linq benutzt sondern den Datenzugriff selber programmierst wirst du wohl erst den Datensatz einfügen müssen, dann die ID auslesen und dann den anderen Datensatz einfügen müssen. Ein Framework könnte dir das abnehmen, dürfte aber intern das gleiche machen.

Das ist z.B. auch ein Grund warum man keine automatisch generierten IDs verwendet, sondern diese selbst vergibt. Z.B. mit Guids.

  • Autor

Danke für die Antworten.

Ich habe derzeit mehrere SqlCommands die, wie ich dusseligerweise annahm, nacheinander abgearbeitet würden...

OK, mein fehler!

Es geht bei mir halt um nen "einfaches" Button_click_event in einer ASP.Net Web App bei dem ich die ganzen Daten verarbeiten will/muss. Gibt es irgendeine Möglichkeit der Kiste zu sagen - Erstelle erst Datensatz a und wenn das durch ist führe Query b aus und hole die Daten und DANN geh in Query c und betanke Table b??

Ich hoffe ihr versteht meinen Gedankengang :D

Danke im Voraus

Doc

AFAIK gar nicht ;)

Wenn du kein Framework wie Linq benutzt sondern den Datenzugriff selber programmierst wirst du wohl erst den Datensatz einfügen müssen, dann die ID auslesen und dann den anderen Datensatz einfügen müssen.

Jain, ab SQL Server 2005 gibt's beim INSERT Statement den Parameter "OUTPUT", welcher benutzt werden kann um automatisch generierte Spalten (z.B. identity, durch Trigger generiert, etc.) auszugeben:


USE Northwind

INSERT INTO Employees (LastName, FirstName) 

OUTPUT inserted.EmployeeID

VALUES ('Kelso', 'Bob')

Der INSERT liefert mir die geschriebene EmployeeID zurück.

Man könnte also zwei INSERTs in einer SQL-Query vereinen, in dem man den Rückgabewert des ersten INSERTs in Variable schreibt und beim zweiten verwendet.

Generell muss man sich überlegen wie viel Funktionalität/Logik man in die Datenbank steckt. Man kann mit Views, StoredProcedures, Triggern, etc. sicher OPs Problem direkt in der DB erledigen - falls das gewünscht sein sollte.

Wenn man Programmlogik in Anwendung und Datenbank hat macht es das Debuggen natürlich nicht einfacher :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.