Suraban Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 (bearbeitet) Wie lautet die korrekte Syntax für folgendes Problem ? in Tabelle A gibt es ein Feld Datum dieses soll auf das aktuelle Datum + Uhrzeit geändert werden. Kann mir jemand sag wie der Update Befehl dazu heißt ? ( In dieser Tabelle gibt es auch noch ein Feld Artikelnummer ) Bearbeitet 25. Mai 2011 von Suraban Zitieren
Thelvan Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Kommt auf das DBMS an. Beispiel MSSQL: UPDATE A SET Datum = Now() WHERE <Bedingung> Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 UPDATE ART SET GeaendertAm = Now() WHERE Artikelnummer = 100003 Also so ? Hier kommt aber eine Fehlermeldung 'Now' wird nicht als Name einer integrierten Funktion erkannt ! Zitieren
Jejerod Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Dann google am besten mal nach "Time Date Functions" für dein Datenbankprodukt? Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 Ich arbeite übrigens mit Microsoft SQL Server Managment Studio Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, probiers mal so: http://www.itrain.de/knowhow/sql/tsql/funktionen/sqlfunc.asp?funktion=GETDATE Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 Also ich weiß nicht ob ich nun einen denkfehler habe aber bei deinem Link komm ich auf einen Select Befehl aber ich will doch ein Update machen !?! Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, statt Now() einfach mal getdate() probieren. Das select ist nur ein Beispiel, mit dem du sehen kannst ob das Datum richtig formatiert ist. Du kannst die Funktion natürlich auch in einem Update nutzen. Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 UPDATE ART SET GeaendertAm = getdate() WHERE Artikelnummer = 100003 Wenn ich es nun so mache kommt wieder eine Fehlermeldung : Das Timeout für Sperranforderungen wurde überschritten. Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, das ist aber ein ganz anderes Problem: MSSQLSERVER_1222 D.h. offenbar sperrt ein anderer Prozess die Tabelle. Wenn möglich, starte die DB einfach mal neu. Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 Ok nach dem Neustart kam diese Fehlermeldung nicht mehr aber dafür diese: Fehler beim Konvertieren des varchar-Werts '400005b' in den int-Datentyp Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, kann es sein, dass die Spalte "geandertAm" nicht das Datumsformat hat? Sowas ist natürlich immer ungünstig, weil man ansonsten Casten müsste. Aber wenn die Datenbank schon entsprechende Spaltentypen anbietet, sollte man diese auch nutzen. Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 Also in dem Feld geaendertam sind solche Einträge drin 2011-05-19 08:49:48.000 und genau diese will ich updaten Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, tja, da bleibt nur das hier: GETDATE (Transact-SQL) Lesen und probieren. Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 Also ich weiß nicht wieso aber egal in welcher Art und weise ich es mache es kommt immer dieser Fehler Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, welchen Typ hat denn das Feld "geaendertAm"? Die Daten, die da drinstehen können auch varchar oder sonstwas sein. Zitieren
Suraban Geschrieben 25. Mai 2011 Autor Geschrieben 25. Mai 2011 UPDATE ART SET GeaendertAm = CURRENT_TIMESTAMP WHERE Artikelnummer = '100003' so hat es nun funktioniert ........ und das sollte ich nun irgendwie in meinen Trigger einbauen .-....... au mann http://www.fachinformatiker.de/datenbanken/147240-sql-trigger-problem.html Zitieren
carstenj Geschrieben 25. Mai 2011 Geschrieben 25. Mai 2011 Hi, wenn ich das jetzt richtig überblicke, hast du jetzt alles, was du brauchst. Du musst jetzt eigentlich "nur" noch die Puzzleteile zusammenfügen. Zitieren
Empfohlene Beiträge
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.