2009-08-05 3 views
2

hinzuzufügen. Wir haben eine Anwendung geerbt, die ursprünglich nicht für lokalisierte Daten (lokalisierte Zeichenfolgen wie Russisch/Japanisch, lokalisierte Datetime-Formate usw.) verwendet wurde.Umgehen Sie die Notwendigkeit, das Präfix N in Zeichenfolgenliteralen

Die ursprünglichen Entwickler, die an dem Projekt arbeiteten, erwarteten nicht, dass es Unicode-Strings geben wird. Obwohl die Datentypen Unicode-Zeichen unterstützt der Tabelle (NVARCHAR, etc.), sind einige ihrer Anfragen nicht richtig mit N. Präfix

Zum Beispiel:

select * from table where searchString like '%<search string here>%' 

Um diese Arbeit zu machen mit Unicode-Strings:

select * from table where searchString like N'%<search string here>%' 

Wir haben dann entschieden, dass wir nur alle Zeichenkettenliterale manuell mit N voranstellen müssen, aber dann entdeckten wir, zu unserem Entsetzen, die riesige Menge an Abfragen ÜBERALL.

Also meine Frage ist, gibt es eine Möglichkeit, das Präfix N in unseren Abfragen nicht zu setzen, aber es würde immer noch funktionieren? Wie sagen, SQL Server "Hey, behandeln Sie bitte alle Strings als Unicode. Bitte verstehen Sie mich nicht Sie jedes Mal machen sagen. :)"

Grüße, Ian

Antwort

1

In SQL Server 2000 und 2005, soweit ich bin mir bewusst, nein. Ich kann nicht über 2008 sagen, aber vermute das gleiche.

1

Sie können nicht. Es ist notwendig für die Kompatibilität mit ODBC/OLE-Treibern (also versuchen sie nicht, eine Codepage-Konvertierung durchzuführen).

Verwandte Themen