![]() |
[ACCESS] Defaultwert auf NULL setzen
Mahlzeit zusammen,
Ich hab eine Access-DB in der die Definition eines Feldes fehlerhaft ist. Der Defaultwert des int-Feldes ist 0 sollte aber NULL sein. Ich kanns nicht händisch machen weils auf mehreren Test-DBs und einer Demo-DB beim Kunden passieren muss. Deshalb muss es mit nem Alter Table gehen. Allerdings zieht der Befehl
SQL-Code:
offenbar nicht. Woran liegts?
ALTER TABLE Antriebsrahmen ALTER ar_LokID int NULL
grüße, daniel |
Re: [ACCESS] Defaultwert auf NULL setzen
Nochmal ne Info hinterher. Access liefert keinen SQL-Fehler nach diesem Befehl.
Es passiert einfach nix. Der Default-Wert des Feldes bleibt gleich. Ist der Befehl grundsätzlich für den Kanal? |
Re: [ACCESS] Defaultwert auf NULL setzen
Wenn ich in Oracle bei einer Spalte die "NOT NULL" - Bedingung aufheben will, schreibe ich :
SQL-Code:
Hatte sie nie diese Bedingung, ist das auch nicht nötig
ALTER TABLE Antriebsrahmen modify AR_LOKID NULL;
-> wird sie bei einem INSERT nicht beschrieben ist sie halt leer. Die Frage dabei ist nur wie weit sich MS-Jet an solche SQL Standards hält. :gruebel: |
Re: [ACCESS] Defaultwert auf NULL setzen
NOT NULL war die Spalte gar nie. Der Standardwert ist 0. Den hab ich unbeabsichtigt mal so gesetzt und habs erst viel später bemerkt. Jetzt soll ins Programm eine Updatefunktion rein, der den Standard-Wert auf NULL setzt.
|
Re: [ACCESS] Defaultwert auf NULL setzen
Dann vielleicht so:
SQL-Code:
... ohne "int"
ALTER TABLE Antriebsrahmen modify AR_LOKID DEFAULT NULL
|
Re: [ACCESS] Defaultwert auf NULL setzen
Wenn dann so
SQL-Code:
Modify gibts bei Access nämlich nicht. Werds morgen mal versuchen.
ALTER TABLE Antriebsrahmen ALTER AR_LOKID DEFAULT NULL
grüße, daniel |
Re: [ACCESS] Defaultwert auf NULL setzen
Funktioniert leider weder mit Modify noch mit Alter. Beides liefert einen SQL-Fehler.
:gruebel: |
Re: [ACCESS] Defaultwert auf NULL setzen
Problem gelöst. Zwar ziemlich umständlich, aber damit kann ich leben, weil der Befehl nur einmal ausgeführt wird.
SQL-Code:
Weil ich das Umbenennen eines Feldes auch nicht hinbekommen habe, kopier ich das Feld einfach 2 mal.
UPDATE Antriebsrahmen set ar_LokID1 = ar_LokID;
DROP INDEX ar_LokID on Antriebsrahmen; ALTER TABLE Antriebsrahmen DROP COLUMN ar_LokID; ALTER TABLE Antriebsrahmen ADD COLUMN ar_LokID int NULL; UPDATE Antriebsrahmen set ar_LokID = ar_LokID1; ALTER TABLE Antriebsrahmen DROP COLUMN ar_LokID1; create index ar_LokID on Antriebsrahmen (ar_LokID); UPDATE Antriebsrahmen set ar_LokID = NULL where ar_LokID = 0; Trotzdem Dank für die Ansätze grüße, daniel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz