Usamos VARCHAR para casi todo, y NVARCHAR solo muy muy ocasionalmente.
códigos de producto no necesitan NVarchar - no permitimos que no sea AZ, 0-9 y nada "_" en ellos ...
Su doble de espacio de almacenamiento, pero también sólo tienen la mitad de la las entradas por página de índice (y por página de datos) y la mitad de la memoria caché se "desperdicia", más ciclos de CPU para comparar datos, y más.
IME los acentos extranjeros comúnmente utilizados funcionan justo en Varchar (es decir, LATIN-1). No tenemos planes de hacer juegos de caracteres chinos u otros juegos de caracteres alternativos, y cuando podamos manejar ese conjunto de caracteres utilizando NVarchar desde el primer día será la menor de nuestras preocupaciones: ¿alineación de texto de derecha a izquierda o vertical? :(
Y si permitió NVarchar para, por ejemplo, un nombre, ¿cómo va a escribir el carácter extendido desde su teclado? Y si importa los datos (por lo que ya es NVarchar) cómo va a ser capaz de buscar a ese cliente usando su teclado QWERTY estándar. Muchos y muchos involucrados con la internacionalización de una aplicación, así que mi punto de vista es que no tiene sentido "permitirlo usando NVarchar".
Pero de nuevo hay muchos lugares donde vaya a tener NVarchar ... y la mayoría de las columnas tienen 50 caracteres de ancho también ... ¡deben saber algo sobre el crecimiento de la población y los planes de expansión para los códigos postales que yo no tengo!
Agregaría la versión de SQL Server a su pregunta, ¿puede hacer una diferencia? – Ash
Actualmente estoy usando el servidor sql 2005, pero estamos buscando pasar al 2008 con el tiempo. – mmcdole