# datetime Default Systemdatum?



## AlexD1979 (4. Januar 2005)

Hallo,
Eine ganz einfache Frage, wie kann ich meinem SQL Server sagen, dass bei jedem einfügen einer neuen Zeile das Feld ins_datum (welches als datetime definiert ist) mit dem aktuellen Systemdatum gefüllt wird?

Zweite Frage, wie stelle ich den automatischen ID Zähler wieder zurück auf null?


----------



## redlama (4. Januar 2005)

Antwort zu Frage 1: Wie fügst Du die Daten in die Tabelle ein? Zufällig via PHP? Dann könntest Du ganz einfach mit der Funktion date() das aktuelle Datum mit dem insert Statement übergeben!
Antwort zu Frage 2: Ich glaube, das ist nicht möglich!

redlama


----------



## Oliver Gringel (4. Januar 2005)

Um welches Datenbank-System handelt es sich denn?

Falls mySQL:
1. Nein, das ist nicht möglich. Du musst die Zeit jedesmal mit NOW() setzen.
2. Ist mir keine Möglichkeit bekannt, außer z.B. Struktur der Tabelle exportieren (ohne Auto-Increment-Wert), Daten exportieren, und dann wieder alles Importieren. Damit sollte dein Auto-Increment-Wert eins höher sein, als deine Maximale ID.
Wenn es egal ist, ob die IDs behalten werden, kannst du auch einfach die ID-Spalte löschen und wieder anlegen. Die IDs werden dann fortlaufend aufgefüllt.


----------



## AlexD1979 (5. Januar 2005)

Zu meiner zweiten Frage, in MySQL geht das mit 

```
ALTER TABLE tbl_name AUTO_INCREMENT = 1
```
In Oracle kann man das bequem mit einem Dialog zurücksetzen.
Aber wie geht das in Microsoft SQL Server 2000? Gibt es da einen Dialog zu?
Ich nutze ColdFusionMX für das Einfügen der Daten in die Datenbank.

Das Datum kann ich natürlich im Insert mit { fn NOW() } einsetzen, aber man kann doch einen Defaultwert definieren in der Datenbank, der automatisch eingesetzt wird, wenn im Statement nichts übergeben wird. Das ist es,was ich suche.


----------



## XChris (5. Januar 2005)

Zu 1 (falls Du MySQL nutzt)

Als default Wert ein TIMESTAMP Feld definieren, dass NICHT NULL sein darf. Dann wird bei einem INSERT (Einfach TIMESTAMP hier nicht angeben) immer automatisch die zeit gesetzt. Leider  das nicht bei UPDATE.

Zu 2 Mit AlterTable. Diese Frage wurde hier und anderswo schon Zig mal beantwortet. (Macht nur zu Entwicklungszeiten Sinn und Du solltest die Finger davon lassen, wenn die DB scharf ist)

Chris


----------



## AlexD1979 (5. Januar 2005)

Nochmal, ich nutze KEIN MYSQL, ich arbeite mit einem Microsoft SQL Server 2000.

Ich will ja nur einmal wissen, wie ich den Auto_Inkrement Wert auf 1 zurücksetzen kann, damit die Datenbank produktiv gehen kann?


----------

