Frage

Ich erhalte und Fehler mit folgenden Syntax:

update table set field1 = (field1+' - '+field2) where field1 = 'somevalue'

Es ist nicht sehr glücklich mit diesem für mich zu tun. Ich weiß, dass die ‚+‘ für Verkettung Werke in meinen select-Anweisungen, so dass die richtige Syntax. Es ist etwas anderes, hier im Spiel ... und ich versuchte auch die Klammer zu entfernen.

Beispiel:

Wenn field1 = 'Käse' und field2 = 'ConQueso'
dann mein Update sollte alle Datensätze festgelegt, wo field1 = 'Cheese' = FIELD1 'Cheese - ConQueso'


EDIT:
Beide Felder Textfelder sind

War es hilfreich?

Lösung

Schwer zu sagen, ohne dass Sie den Fehler bereitstellt, aber vielleicht die kombinierte Datengröße überschreitet field1.

z. B., wenn field1 ist varchar (50) und field2 ist varchar (50), die Summe bis zu 103 Zeichen lang sein könnte einschließlich Ihrer ' - ', die die 50 Zeichen von field1 überschreitet.

Andere Tipps

(edit: pre-dates die Aktualisierung Klärung Datentyp ist text, aber funktioniert gut als varchar(max))

Adaequat hier (SQL2005):

create table [table] (
   field1 varchar(max) not null,
   field2 varchar(max) not null)
insert [table] values ('somevalue','abc')
insert [table] values ('other','def')
update [table] set field1 = (field1+' - '+field2) where field1 = 'somevalue'
select * from [table]

Ausgänge:

field1               field2
-------------------- --------------------
somevalue - abc      abc
other                def
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top