Zum Inhalt springen

Aktuelles Datum und Uhrzeit in einer Gespeicherten Prozedur einbauen?


T-Back

Empfohlene Beiträge

Hallo Leute!

Könnte mir bitte einer weiterhelfen?

Es handelt sich um eine SQL-SErver 2008 R2 Datenbank

Ich habe eine Tabelle mit folgenden Spalten (darunter sind die Datentypen):

ID, UserID, KategorieID, Datum, Zeit

int, int, int, date, time(7)

Die Spalte ID ist der Primärschlüssel.

Ich habe folgendes Problem:

Ich möchte div. Gespeicherte Prozeduren für die Tabelle erstellen und möchte sobald ich die Gespeicherten Prozeduren aufrufe, dass dann automatisch das aktuelle Datum und die aktuelle Uhrzeit in die dafür vorgesehen Felder geschrieben werden.

Ich habe es schon so probiert für die Gesp.Proz. New

CREATE PROC spAktionNew

@UserID int,

@KatID int,

@Datum date = GetDate()

@Zeit time = GetDate()

Aber da kamen immer wieder Fehler!

Könntet Ihr mir bitte sagen, wie ich die Gesp.Prozedur schreiben muss?

Das wäre sehr nett von euch!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum eine Prozedur? Wenn Du protokollieren willst, wann sich der Datensatz zuletzt geändert hat würde man bei einem On-Update bzw On-Create das Feld direkt via Trigger setzen

...

Es handelt sich um eine SQL-SErver 2008 R2 Datenbank

Ab dem Sql Server 2008 gibt es die Möglichkeit mittels Change data capture Änderungen an Daten nachzuverfolgen.

Möglicherweise findest du in dem Bereich eine Lösung zu deinem Problem.

Der Trigger wird auch funktionieren.

Die mögliche Lösung ist abhängig von den Anforderungen die du hast/bekommen hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Trigger sind ja auch prädestiniert dafür. In Abhängigkeit des DBMS und des Problems was zu lösen ist, gibt es halt mehrere Möglichkeiten. Wir evaluieren gerade Möglichkeiten, wie wir Systemweit "Telemetriedaten" sammeln können. Deswegen viel mir der CDC wieder ein ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

zum Thema Stored Procedure ....

Wenn du das Datum allgemein auf getdate() setzen möchtest, dann brauchst du das nicht als Parameter der Procedure. Im Endeffekt deklarierst du in deinem Code oben das Datum als Optionalen Parameter, mit dem default Wert getdate().

Afaik würde das auch nicht funktionieren, einen Funktionsaufruf als Default Wert zu hinterlegen. Ich werds heute nicht mehr testen, aber ich zweifle dass das akzeptiert wird. Davon abgesehen kannst du da alles mögliche als Datum übergeben, nur wenn der Parameter nicht im Aufruf übergeben wird, hättest du da getdate().

Was du tun kannst ist :


CREATE PROC spAktionNew

@UserID int,

@KatID int

/*@datum datetime = NULL */

AS 

BEGIN

declare @Datum datetime = GetDate() -- warum 1x date und 1x time ?


/*set @datum = isnull(@datum, getdate()) */

....

END

Auskommentiert wäre wie ich @datum als optionalen Parameter anlegen würde.

Ansonsten hast du von den Vorpostern reichlich alternative Vorschläge Erstellungs / Änderungsdatum zu speichern.

Für eine Allgemeine Lösung würde ich vermutlich (mit fehlt der Hintergrund des Ganzen),zu Triggern tendieren, da kannst du dir z.b. dann auch den SQL User der die Änderung durchgeführt hat wegschreiben.

Gruß

Sven

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...