Hallo, der Code von Ukulele hat bis gestern perfekt funktioniert
Code:
DECLARE @ordinal INT,
@tabelle VARCHAR(100),
@letzte_spalte VARCHAR(100),
@vorletzte_spalte VARCHAR(100),
@query VARCHAR(8000)
SET @tabelle = 'S_92620'
SET @ordinal = ( SELECT max(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle )
SET @letzte_spalte = ( SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle AND ORDINAL_POSITION = @ordinal )
SET @vorletzte_spalte = ( SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle AND ORDINAL_POSITION = @ordinal - 1 )
SET @query = 'UPDATE [' + @tabelle + '] SET [zielspalte] = [' + @letzte_spalte + '] + [' + @vorletzte_spalte + ']'
EXEC(@query)
Leider habe ich seit heute aber das Problem das mit der Code die Fehlermeldung bei SET @letzte_spalte ebenso wie bei Set @vorletzte_spalte ausgibt, der wie folgt heißt:
Meldung 512, Ebene 16, Status 1, Zeile 76
Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.
Meldung 512, Ebene 16, Status 1, Zeile 77
Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.
Das warum verstehe ich jedoch nicht. Es hat sich von gestern auf Heute nur geändert, dass es mehr Zeile gibt, die Aufgabe aber die der Code aber eigentlich keinen Einfluss haben dürfte.