verwendetes Datenbanksystem: <SQL Server 2005>
Ich würde gerne kyrillische Zeichen in meine Datenbank speichern. Ich verwende für die Speicherung von Daten Prozeduren:
exec Person_update @ID = 1, @Firstname = '(?I:',@Lastname='(?I:'
exec Person_update @ID = 8, @Firstname = 'Jürgen',@Lastname='Graß'
(anbei Bild)
Da ich gelesen habe, dass Parameter immer mit der Collation der DB erstellt werden, hab ich die Collation auf Cyrillic_General_CI_AI umgestellt. Allerdings gehen jetzt die deutschen Zeichen nicht mehr.
Welche Collation muss ich verwenden bzw. geht das überhaupt?
Hallo tkrasinger
Du kannst die Collation auf der Standardkonfiguration lassen. Verwende als Spaltentyp NVARCHAR.
Um Text direkt über SQL einzufügen vor das Hochkomma ein "N" setzten damit SQL Server es als Unicode verarbeitet:
EXECUTE Person_update @ID = 1, @Firstname = N'(?I:', @Lastname= N'(?I:'
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Hallo,
die Collation gibt an sich nur die Sortierung wieder. Wichtig bei Mehrsprachigkeit in SQL Server Datenbanken ist der Datentyp. Dieser muss Unicode fähig sein (z.B. NVARCHAR) und die Parameter müssen ebenfalls als Unicode angegeben werden (z.B. N'Bla').
Der Aufruf deiner Prozedur müsste also eigentlich
EXEC Person_update @ID = 1, @Firstname = N'Jürgen', @Lastname = N'Graß'
sein. Wobei das N automatisch vorgestellt wird, wenn es sich um parameterisierte Abfragen bei Unicode-Datentypen handelt.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)