Aktualisieren Sie SQL-Syntax - Zurücksetzen ein Feld sich mit einer Verkettung - SQL Server 2005
-
06-07-2019 - |
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
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