ALTER TABLE: was mach ich falsch?

Ich kann die Fehlermeldung nicht reproduzieren, du hast vermutlich noch mehr Code drum herum.

Tatsache ist das @kopf NULL ist und somit auch @intAlter NULL wird und du stark verkürzt dann EXEC(NULL); ausführst.

Außerdem suchst du vermutlich eher convert(VARCHAR(10),@kopf,104) anstelle von cast().
 
Werbung:
Hallo,

nein ich habe keine Codes drum herum, deshalb kann ich nicht verstehen warum der Code bei dir läuft und bei mir nicht. Kann so was an der Serverversion liegen? Nutze "MMS 2016" und Serverversion "12.0 SP1". Wie gehe ich nun vor? Aber es ist richtig das NULL raus kommen müsste. Wichtig ist dieser Code nur für mich um die Spaltenüberschrift "Saldo vom 24.05.2017" als neue Spalte in der S_92620 zu erhalten.

Erst im zweiten Schritt wollte ich dann die Spalte mir Werten füllen, mittels der "Insert into" Funktion.
 
Werbung:
nein ich habe keine Codes drum herum, deshalb kann ich nicht verstehen warum der Code bei dir läuft und bei mir nicht.
Ich habe nicht gesagt das der Code bei mir "läuft", ich kann nur die Fehlermeldung nicht reproduzieren. Ich habe mir jetzt auch nicht die Mühe gemacht diese kryptische Tabelle anzulegen denn ich weiß ja das NULL aus dem String wird.

Kann so was an der Serverversion liegen? Nutze "MMS 2016" und Serverversion "12.0 SP1".
Nein.

Wie gehe ich nun vor?
Mein Vorschlag wäre ja die Datenbank wie vorgesehen zu nutzen ohne Spalten hinzuzufügen. Das siehst du nicht ein also wirst du dich mit den Folgen beschäftigen müssen. Dazu gehört eine Fehlerbehandlung: NULL-Werte abfangen, nur Code ausführen der auch lauffähig ist.

Aber es ist richtig das NULL raus kommen müsste. Wichtig ist dieser Code nur für mich um die Spaltenüberschrift "Saldo vom 24.05.2017" als neue Spalte in der S_92620 zu erhalten.
Nun, NULL kommt raus aber um eine neue Spalte anzulegen muss natürlich etwas anderes raus kommen.

Erst im zweiten Schritt wollte ich dann die Spalte mir Werten füllen, mittels der "Insert into" Funktion.
Niemand hält dich davon ab.

Code:
DECLARE   @query VARCHAR(8000)

SET     @query = 'ALTER TABLE [S_92620] ADD [Saldo vom ' + convert(VARCHAR(10),getdate(),104) + '] VARCHAR(100)'

BEGIN TRY
   EXEC(@query);
END TRY
BEGIN CATCH
   DECLARE   @error VARCHAR(8000)

   SET     @error = 'Der Code "' + isnull(left(@query,100),'NULL') + '" ist Bullshit'

   RAISERROR(@error,16,1);
END CATCH
Hier mal eine ganz einfache Variante für den String und ein bischen Fehlerbehandlung.
 
Zurück
Oben