2008-12-25 17 views

Respuesta

11

Necesita la sintaxis N '' solo si la cadena contiene caracteres que no están dentro de la página de códigos predeterminada. La "Mejor práctica" es tener N '' siempre que inserte en una columna nvarchar o ntext.

+0

Si mi página de códigos es UTF-8, ¿todavía tengo que usar el prefijo N? Gracias! –

0

Es preferible por compatibilidad.

3

Sí, lo hace si tiene caracteres Unicode en las cadenas.

De los libros en línea (http://msdn.microsoft.com/en-us/library/ms191313.aspx) ...

"constantes de cadena Unicode que aparecen en el código que se ejecuta en el servidor, como por ejemplo en procedimientos almacenados y disparadores, irá precedido de la letra mayúscula N. Esto es cierto incluso si la columna a la que se hace referencia ya está definida como Unicode. Sin el prefijo N, la cadena se convierte en la página de códigos predeterminada de la base de datos. Esto puede no reconocer ciertos caracteres. El requisito de usar el prefijo N se aplica a ambas constantes de cadena que se originan en el servidor y los enviados desde el cliente ".

0

La mejor práctica es usar parameterisation en cuyo caso no necesita el prefijo N.

+3

Depende del contexto. Si se trata de una secuencia de comandos puramente TSQL, los parámetros no serán de utilidad, ya que aún necesita usar el prefijo 'N' cuando asigne valores a los parámetros. –

Cuestiones relacionadas