Laden...

[gelöst] Kyrillisch in SQL Server DB

Erstellt von tkrasinger vor 14 Jahren Letzter Beitrag vor 14 Jahren 5.704 Views
T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 14 Jahren
[gelöst] Kyrillisch in SQL Server DB

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?

1.564 Beiträge seit 2007
vor 14 Jahren

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ß.

3.511 Beiträge seit 2005
vor 14 Jahren

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)

T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 14 Jahren

hm, hab in der Prozedur noch varchar gehabt ...

2.760 Beiträge seit 2006
vor 14 Jahren

cool