jabs
Goto Top

MS SQL-Server UPDATE-Query Text an ein vorhandenes Text-Feld anhängen geht nicht

Hallo NG,
ich habe zum ersten Mal Kontakt mit MS SQL Server und möchte an einer Datenbank ein UPDATE- Statement ausführen.
Dabei bekomme ich nur Fehlermeldungen.

Der erste Versuch:
UPDATE [db].[dbo].[tartikel] SET [cBeschreibung] = [cBeschreibung] & 'mein String'

Da bekomme ich folgende Meldung:
Die Datentypen text und varchar sind im boolean AND-Operator inkompatibel.

Dann noch diese Version:
UPDATE [db].[dbo].[tartikel] SET [cBeschreibung] = [cBeschreibung] & CAST('mein String' as Text)

Fehlermeldung:
Der Operanddatentyp text ist für den boolean AND-Operator ungültig.

CONCAT scheint es nicht zu geben - das muss doch ganz einfach sein oder?
Ich würde mich über einen kleinen Tipp sehr freuen. Das 'Googeln' hat mich bis jetzt auch noch nicht weitergebracht.
cu
Hendrik

Content-Key: 83532

Url: https://administrator.de/contentid/83532

Printed on: April 25, 2024 at 05:04 o'clock

Member: filippg
filippg Mar 19, 2008 at 18:19:26 (UTC)
Goto Top
Hallo,

zur String-Konkatenation verwendet MSSQL/T-SQL das '+'-Zeichen.
Das der Operator für Text nicht definiert ist ist nicht völlig unmöglich. Aber zumindest solltest du dann eine entsprechende Fehlermeldung erhalten, in der nichts mehr von Boolean-Operator auftaucht.

Gruß

Filipp
Member: Jabs
Jabs Mar 19, 2008 at 18:36:28 (UTC)
Goto Top
Hallo Filipp,
wenn ich '+' verwende, kommt die Meldung, dass der Add- Operator für Text ungültig ist. Das hab ich schon probiert.
cu
Hendrik
Member: filippg
filippg Mar 19, 2008 at 19:01:42 (UTC)
Goto Top
Hallo,

dann würde ich mal behaupten: MSSQL kann ganz einfach keine Textfelder aneinanderhängen. Denkbar, dass das aus Performancegründen weggelassen wurde. Wenn ich mich da richtig erinnere sind die gesamten Stringfunktionen (gut, so viele sind es nicht face-wink ) nur für char und varchar-Typen zugelassen.

Gruß

Filipp
Member: Jabs
Jabs Mar 19, 2008 at 19:20:39 (UTC)
Goto Top
Hallo Filipp,
Super Denkanstoss !!!! Ich habe jetzt folgendes gemacht:
UPDATE [db].[dbo].[tartikel] SET [cBeschreibung] = CAST((CAST([cBeschreibung] AS VARCHAR) + 'mein String') AS TEXT)
Ob das äußere CAST notwendig ist oder nicht, hab ich nicht probiert, aber so hat's funktioniert.
Mit Varchar funktionieren die Operatoren.
Danke Dir.
Hendrik