Wie kann ich Zauber auf ein update? Das Datenfeld festgelegt ist vchar(4) und ich möchte, um Sie zu wirken, wie ein int
Dies ist, was ich kommen mit so weit, aber ich bin immer ein syntax-Fehler
update t_Provider set(CAST(f_Postnr as int)) = '66886' where f_Name= 'Test1'
- Wollen Sie nicht zum cast der Charakter-Typ den Wert '66886' in einen int? Der linke Teil des
SET somecolumn = somevalue
Teil sein soll, den Namen einer Spalte. - Das problem ist ich kann nicht mehr als vier Zeichen in das Datenfeld, so bin ich versucht zu werfen f_Postnr in int oder sogar vom Datentyp nvarchar(10) wäre fein.
- Verwenden
ALTER TABLE
und ändern Sie die Spaltenvarchar(11)
oder - noch besser - zuint
, wenn Sie speichern nur ganze zahlen. - dont muss ich die Tabelle löschen, um das?
- Dank ypercube das war der trick
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch Ihre Frage, ich gehe davon aus Spalte
f_Postnr
ist einNVARCHAR(4)
.Können Sie einfügen von Daten in dieser Spalte mit einem größer-Zeichen Länge, 4.
Jede Lösung würde erfordern das Bearbeiten der Spalte Länge.
Schauen Sie sich bitte die syntax für ein update in MSDN..
Der linken Seite der Zuweisung zu einer bekannten Speicherstelle (variable oder Spalte/Feld). Was Sie tun, ist versuchen, und der Ausdruck (unbekannter Lage), um eine Konstante und filter, die durch eine where-Klausel.
Verwenden Sie diesen code, um zu tun, was Sie wollen.
Warum nicht, übergeben Sie die Konstante in der update ohne Angabe als string "? Das ist, was das obige snippet tut. Dies setzt Voraus, f_Postnr ist ein INT, die leicht zu handhaben 66K Anzahl (domain constraint).
Wenn Sie '66886', wird SQL Server die implizite cast den string in einen integer, wenn keine Fehler vorhanden sind.
Hier ist eine riesige Karte für MSDN auf implizites casting-matrix.
Ich hoffe das hilft die bei deiner zukünftigen TSQL Bemühungen!
Was ist mit...