Ich habe ein dreistufiges System, SQL Server-Backend, handgeschriebene Datenzugriffsschicht und gespeicherte Prozeduren verwenden.Muss ich nach dem Erstellen einer neuen Zeile in der Datenbank den Primärschlüssel an die Zeile oder ein Datenübertragungsobjekt zurückgeben?
Ich habe eine Tabelle namens EventTable. Jede Zeile ist ein 'Event'. Ein Ereignis hat einen Primärschlüssel und ein Startdatum.
CREATE TABLE EventTable
(
ID INT IDENTITY(100,1) PRIMARY KEY,
StartTime DateTime NOT NULL
)
Es gibt eine gespeicherte Prozedur namens EventTable_Create. Übrigens, ist die create Methode in Ordnung wie geschrieben?
CREATE PROCEDURE Event_Create
@NewID INT OUT
AS
DECLARE @START DATETIME
SELECT @START = getdate()
INSERT INTO EventTable VALUES(@START, NULL)
SELECT @NewID = MAX(ID) FROM EventTable
GO
Die Datenzugriffsebene gibt ein int an den Aufrufer zurück, sollte sie stattdessen eine Instanz eines Datenübertragungsobjekts namens Event zurückgeben? Wenn das wahr ist, sollte ich sowohl die neu erstellte ID als auch die Startzeit zurückgeben, damit die Datenzugriffsebene das Ereignisübertragungsobjekt erstellen kann?
Uh, das ist die gespeicherte Prozedur für "Experiment", nicht "Event". – Portman