Ich habe Präfix N in einigen T-SQL-Abfragen zum Einfügen gesehen. Viele Leute haben benutztN
vor dem Einfügen des Wertes in eine Tabelle verwendet.
Ich habe gesucht, aber ich konnte nicht verstehen, wozu das N
Einfügen von Zeichenfolgen in die Tabelle dient.
INSERT INTO Personnel.Employees
VALUES(N'29730', N'Philippe', N'Horsford', 20.05, 1),
Welchen Zweck erfüllt dieses 'N'-Präfix und wann sollte es verwendet werden?
quelle
N
nur verwenden, wenn ich folgende Datentypen verwendeCHAR, VARCHAR or TEXT
? Da `NCHAR, NVARCHAR oder NTEXT` von Natur aus UNICODE speichern, muss ich es nicht separat hinzufügen ... stimmt das?databases aspfaq com
Umleitungen auf äußerst fragwürdige Websites (fkref com
,za1 zeroredirect1 com
,i0z13 trackvoluum com
), die von unserem Unternehmens - Firewall als Pornographie, bösartige Websites und Spam - URLs markiert wurde. Ich habe den Besitzer von aspfaq.com kontaktiert und die Antwort bearbeitet, um den Link zu entfernen.Lassen Sie mich Ihnen eine nervige Sache erzählen, die mit dem passiert ist
N'
Präfix ist - ich konnte es zwei Tage lang nicht reparieren.Meine Datenbanksortierung lautet SQL_Latin1_General_CP1_CI_AS .
Es hat eine Tabelle mit einer Spalte namens MyCol1 . Es ist ein Nvarchar
Diese Abfrage stimmt nicht mit dem vorhandenen exakten Wert überein .
mit Präfix N '' wird das Problem behoben
Warum? Weil latin1_general keine großen Punkte hat , deshalb scheitert es vermutlich.
quelle
1. Leistung:
Angenommen, Ihre where-Klausel lautet wie folgt:
Wenn die NAME-Spalte von einem anderen Typ als nvarchar oder nchar ist, sollten Sie das N-Präfix nicht angeben. Wenn die NAME-Spalte jedoch vom Typ nvarchar oder nchar ist und Sie das N-Präfix nicht angeben, wird 'JON' als Nicht-Unicode behandelt. Dies bedeutet, dass der Datentyp der NAME-Spalte und die Zeichenfolge 'JON' unterschiedlich sind und SQL Server den Typ eines Operanden implizit in den anderen konvertiert. Wenn der SQL Server den Literaltyp in den Spaltentyp konvertiert, gibt es kein Problem. Wenn dies jedoch andersherum erfolgt, wird die Leistung beeinträchtigt, da der Spaltenindex (falls verfügbar) nicht verwendet wird.
2. Zeichensatz:
Wenn die Spalte vom Typ nvarchar oder nchar ist, verwenden Sie immer das Präfix N, während Sie die Zeichenfolge in der WHERE-Kriterien / UPDATE / INSERT-Klausel angeben. Wenn Sie dies nicht tun und eines der Zeichen in Ihrer Zeichenfolge Unicode ist (wie internationale Zeichen - Beispiel - ā), schlägt es fehl oder es kommt zu einer Beschädigung der Daten.
quelle
Angenommen, der Wert ist vom Typ nvarchar, nur verwenden wir N ''
quelle