Codificación de MS SQL Server 2008

Tengo una tabla en la base de datos con la colación Lithuanian_100_CI_AS. Algunas filas tienen campos de texto con texto, que contiene símbolos aleatorios en lugar de lituanos. ¿Es posible cambiar la codificación, que vería las letras que necesito? Cambiar la colación no hace absolutamente nada.

preguntado el 01 de febrero de 12 a las 14:02

Probablemente no. Si lo insertó incorrectamente, los datos ya se perderán. Supongo que la intercalación predeterminada de la base de datos es algo diferente al lituano. En cuyo caso utilice el N prefijo al insertar cadenas literales para evitar que sea coaccionado en la página de códigos de la intercalación predeterminada de su base de datos. -

texto o ntext? (que no debería usarse de todos modos) -

Para todos los campos de texto de estas tablas, utilizo NVARCHAR (256), porque no son cadenas muy largas. La intercalación de la base de datos es Lithuanian_100_CI_AS. El problema es que se importaron datos de CSV que tenían una codificación incorrecta. No puedo volver a importar datos. -

2 Respuestas

Si tiene los datos como este (manipulados), entonces realmente no puede guardarlos cambiando la intercalación, pero si establece la intercalación correcta, esto podría ayudarlo a obtener los datos escritos de la manera correcta en su base de datos (más relevante para el futuro)

Respondido 01 Feb 12, 18:02

No, los datos son aleatorios.

Tu necesitas

  • use nvarchar para almacenar estos datos correctamente
  • asegúrese de que el cliente esté usando nvarchar para los parámetros
  • asegúrese de que todas las constantes de cadena tengan N al frente (ejemplo: N'foobar')

La intercalación no está codificada: solo determina cómo se comparan las cadenas y cómo se comparan / lucen, pero determina la página de códigos para columnas no unicode (unicode = nvarchar)

Nota la los tipos de datos "text" y "ntext" están en desuso en SQL Server. Usa los tipos máximos

Respondido 01 Feb 12, 19:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.