Empresa que usará la base de datos chinos simplificados y tradicionales versiones en chino. He utilizado este proyecto es la versión tradicional china de SQLServer, pero debe utilizar para otro uso la versión en chino simplificado de datos SQLServer proyecto, he seguido la práctica habitual de la versión en chino simplificado de SQL Server en una tabla de datos en chino tradicional se utiliza versión de SQL Server, la estructura y los datos en un éxito. Empecé y no se dio cuenta que sería un problema. Entonces comencé a depurar las sentencias SQL es muy simple de dos tablas de datos asociados con la selección de la siguiente manera:
seleccione tabla1 .*, tabla2 .*
de tabla1
inner join tabla2 en table2.FK = table1.PK
Lógicamente esa simple declaración de que tendría sentido fuera de cualquier problema, pero en el Analizador de consultas que siempre pide el siguiente error
Servidor: Mensaje 446, Nivel 16, Estado 9, Línea 1
Igual a la acción no se puede resolver conflicto de intercalación.
A continuación, busque un momento y luego miró a ayudar a T-SQL, sólo sé que yo, porque los datos en chino simplificado en tablas de datos de SQL Server en el cuadro tradicional china que, junto con los datos originales, una especie y las importaciones, resultando en forma simplificada el tipo de datos sigue siendo simplificado, por lo que no se puede comparar a un error. La solución es ordenar por nombre, contó que el Analizador de consultas pueden ser ordenados. Aquí tendrá que utilizar una palabra clave COLLATE Coliate en Libros en pantalla de SQL Server se explica en:
COLLATE
Una cláusula puede ser aplicada a una definición de base de datos o una definición de columna para definir las reglas de ordenación, o se utilizará la expresión de cadena intercalación de aplicar la proyección.
Sintaxis:
collation_name COLLATE
Collation_name :: =
(Windows_collation_name) | (SQL_collation_name)
Parámetro
charset
Se usa en expresiones, la definición de la definición de columna o el nombre de intercalación de base de datos. charset sólo puede especificar Windows_collation_name o SQL_collation_name.
Windows_collation_name
intercalación de Windows es el nombre de la colación. Ver el nombre de intercalación de Windows.
SQL_collation_name
intercalación de SQL es el nombre de la colación. Ver el nombre de intercalación de SQL.
Entonces, ¿cómo podemos saber el nombre de la intercalación actual es lo que, de hecho, el nombre de la colación es que creamos la base de datos (ejemplo), pueden elegir el momento, pero por lo general vamos a establecer el valor predeterminado original, no su cambio, así que si el SQLServer chino simplificado chino simplificado utilizará las reglas de ordenación por defecto, y si el SQLServer es Chino Tradicional Chino Simplificado utilizará la intercalación predeterminada. Nos fijamos en la base de datos (instancia) de la propiedad, en la ficha General de la conclusión es que la intercalación actual. En el caso de defecto, el nombre simplificado de intercalación chino es: Chinese_PRC_CI_AS, y el nombre tradicional cotejo chino es: Chinese_Taiwan_Stroke_CI_AS, por lo que hemos simplificado si el nombre de intercalación de la tradicional mezcla de tiempo, siempre y cuando una declaración sobre lo que usted desea utilizar la corriente tipo de reglas de ordenación se puede comparar, por ejemplo, que para la anterior sentencia SQL, los dos métodos siguientes para resolver el problema de que los errores
SELECCIONAR Tabla1 .*, Tabla2 .*
DESDE Table1
INNER JOIN Tabla2 ON = Table2.FK Table1.PK COLLATE Chinese_PRC_CI_AS
SELECCIONAR Tabla1 .*, Tabla2 .*
DESDE Table1
INNER JOIN Tabla2 ON = Table2.FK Table1.PK COLLATE Chinese_Taiwan_Stroke_CI_AS
Que por un largo tiempo para resolver los problemas causados por el conflicto de intercalación, si hay interesados, tras lo cual el SQL Server Books Online en el concepto de reglas de ordenación se envió a compartir con ustedes, para salvarnos y luego ir a:
Microsoft? SQL Server? 2000 admite intercalaciones múltiples. reglas de ordenación para controlar el uso correcto del lenguaje (como Macedonia o polaco) o alfabeto (como las lenguas de Europa occidental utiliza el alfabeto latino Latin1_General) las normas de codificación de caracteres.
Cada intercalación de SQL Server especifica tres propiedades:
Por tipos de datos Unicode (nchar, nvarchar, ntext y) en el orden de clasificación. Criterio de ordenación definidas secuencia de caracteres tipo, y las operaciones de comparación sobre los valores de caracteres del método.
Para los no-Unicode tipos de datos de carácter (char, varchar y texto) de la orden de clasificación.
Se utiliza para almacenar datos de caracteres no Unicode de la página de códigos.
Ayuda no puede especificar los tipos de datos Unicode (nchar, nvarchar, ntext y) la página de códigos correspondiente. Para los caracteres Unicode de doble byte por el estándar Unicode define patrones de bits y no se puede cambiar.
Se puede especificar cualquier nivel de intercalación de SQL Server 2000. Instale SQL Server 2000 ejemplo, puede especificar la intercalación predeterminada de la instancia. Cada vez que se crea la base de datos, se puede asignar a la intercalación predeterminada de la base de datos. Si no se especifica la intercalación de la intercalación de base de datos predeterminada instancia es la colación por defecto. Siempre que la definición de columna de caracteres, variable o parámetro puede especificar la intercalación de estos objetos. Si la colación no se especifica, se utiliza la intercalación de base de datos predeterminada para crear estos objetos.
Si la instancia de SQL Server que todos los usuarios utilizan el mismo lenguaje, el lenguaje debe ser escogido para apoyar su cotejo. Por ejemplo, si todos los usuarios de habla francés, elija la intercalación francés.
Si el usuario de SQL Server idiomas instancia debe ser elegido en las necesidades multilingüe para proporcionar el mejor apoyo para su cotejo. Por ejemplo, si un usuario en general idiomas de Europa occidental, el cotejo Latin1_General seleccione. Cuando la ayuda para el usuario multilingüe, todos los datos de caracteres Unicode a partir de datos tipos nchar, nvarchar, ntext y es muy importante. Unicode tiene por objeto eliminar las dificultades que no son Unicode char, varchar y texto del código de tipo de datos de la página de conversión. Clasificación para la comparación porque la definición de la orden de operación y el orden Unicode tipo caracteres, así que cuando se utilizan tipos de datos Unicode para lograr todas las columnas, la clasificación se tienen reglas diferentes. Incluso cuando se utiliza tipos de datos Unicode almacenar datos de caracteres, la mayoría de los usuarios deben ser elegidos para apoyar el cotejo, para evitar el uso de la columna de tipo de datos no Unicode o una variable de lograr.
Intercalación de SQL del motor de base de datos de servidor para almacenar y operar la definición del carácter y los datos Unicode. Sin embargo, cuando los datos se mudó a la aplicación después de la aplicación para la clasificación y comparación de caracteres seleccionados por el equipo de control de la configuración regional de Windows. Aplicación utiliza la comparación de datos de caracteres de la que el control de configuración regional de Windows de la configuración regional también define otros proyectos, tales como números, la hora, fecha y formato de moneda. Para Microsoft Windows NT? 4.0, Microsoft Windows? 98 y Microsoft Windows 95, puede utilizar el panel de control "Configuración regional" de aplicación especificado la configuración regional de Windows. Para Microsoft Windows 2000, utilice el "Panel de control" en la "Configuración regional" aplicación especificada local. La configuración regional de Windows para obtener más información, consulte el sitio Web de Microsoft MSDN? Page Desarrollo Internacional de Software para Windows 95 y Windows NT 4.0.
Número de intercalación no Unicode de los datos puede utilizar la misma página de códigos. Por ejemplo, página de códigos 1251 define el conjunto de caracteres cirílicos. Múltiples reglas de clasificación (como Cyrillic_General, Ucrania y Macedonia) utilizan el código de la página. Aunque estas reglas son el mismo tipo de conjunto de bits para representar los datos de caracteres no Unicode, pero cuando se trata de las definiciones del diccionario, la clasificación y las reglas de comparación se aplican ligeramente diferente, y las definiciones del diccionario para determinar el idioma o las normas de clasificación alfabeto asociado con los caracteres correctos secuencia.
Dado que SQL Server 2000 de control de intercalación Unicode y orden de clasificación que no son Unicode, por lo que no encontrará los datos no Unicode a Unicode y especificar una intercalación diferente causó el problema. En versiones anteriores de SQL Server en el número de página de códigos, ordenación y la intercalación Unicode carácter especificado por separado. Las versiones anteriores de SQL Server también es compatible con un número diferente para cada código de la página de ordenación, y establecer determinadas páginas de códigos no en la configuración regional de Windows el orden de clasificación. SQL Server 7.0, usted también puede especificar la selección de datos para el criterio de ordenación no Unicode que no sea el criterio de ordenación Unicode. Esto dará lugar a la utilización y los datos no Unicode relativa de datos Unicode, clasificación y operaciones de comparación devuelven resultados diferentes.