Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Solo multidimensional
Estas sugerencias e instrucciones pueden ayudar a aumentar la portabilidad de las soluciones de inteligencia empresarial y evitar errores que estén directamente relacionados con la configuración de idioma e intercalación.
Distinción entre mayúsculas y minúsculas de identificadores de objeto
Pruebas de configuración regional con Excel y SQL Server Profiler
Escritura de consultas MDX en una solución que contiene traducciones
Escritura de consultas MDX que contienen valores de fecha y hora
Uso de intercalaciones similares en toda la pila
Si es posible, intente usar la misma configuración de intercalación en Analysis Services que utiliza para el motor de base de datos, esforzándose por la correspondencia en la sensibilidad al ancho, sensibilidad entre mayúsculas y minúsculas, y sensibilidad al acceso.
Cada servicio tiene su propia configuración de intercalación, con el motor de base de datos predeterminado establecido en SQL_Latin1_General_CP1_CI_AS y Analysis Services establecido en Latin1_General_AS. Los valores predeterminados son compatibles en términos de distinción entre mayúsculas y minúsculas, ancho y énfasis. Tenga en cuenta que, si cambia la configuración de cualquiera de las intercalaciones, puede encontrarse con problemas cuando las propiedades de intercalación difieren de maneras fundamentales.
Incluso cuando la configuración de intercalación es funcionalmente equivalente, puede encontrarse con un caso especial en el que cada servicio interpreta de forma diferente un espacio vacío en cualquier parte de una cadena.
El carácter de espacio es un "caso especial" porque se puede representar como un juego de caracteres de un solo byte (SBCS) o de doble byte (DBCS) en Unicode. En el motor relacional, dos cadenas compuestas separadas por un espacio (una mediante SBCS, la otra de DBCS) se consideran idénticas. En Analysis Services, durante el procesamiento, las mismas dos cadenas compuestas no son idénticas y la segunda instancia se marcará como duplicado.
Para obtener más detalles y soluciones alternativas sugeridas, consulte Espacios en blanco en una cadena Unicode que tienen resultados de procesamiento diferentes en función de la intercalación.
Recomendaciones comunes de clasificación
Analysis Services siempre presenta la lista completa de todos los idiomas y intercalaciones disponibles; no filtra las intercalaciones en función del idioma seleccionado. Asegúrese de elegir una combinación viable.
Algunas de las intercalaciones más usadas incluyen las de la siguiente lista.
Debe considerar que esta lista es un punto de partida para una investigación más detallada, en lugar de una recomendación definitiva que excluya otras opciones. Puede que descubra que una intercalación que no está específicamente recomendada sea la que mejor funcione para sus datos. Las pruebas exhaustivas son la única manera de comprobar si los valores de datos se ordenan y se comparan correctamente. Como siempre, asegúrese de ejecutar cargas de trabajo de procesamiento y consulta al probar la intercalación.
Latin1_General_100_AS se usa a menudo para las aplicaciones que usan los 26 caracteres del alfabeto latino básico ISO.
Los idiomas europeos del Norte que incluyen letras escandinavas (como ø) pueden usar Finnish_Swedish_100.
Los idiomas de Europa oriental, como ruso, suelen usar Cyrillic_General_100.
El idioma chino y las clasificaciones varían según la región, pero generalmente son chino simplificado o chino tradicional.
En PRC y Singapur, el soporte técnico de Microsoft tiende a ver chino simplificado, con Pinyin como criterio de ordenación preferido. Las intercalaciones recomendadas son Chinese_PRC (para SQL Server 2000), Chinese_PRC_90 (para SQL Server 2005) o Chinese_Simplified_Pinyin_100 (para SQL Server 2008 y versiones posteriores).
En Taiwán, es más común ver el chino tradicional, con el criterio de orden recomendado basado en el recuento de trazos: Chinese_Taiwan_Stroke (para SQL Server 2000), Chinese_Taiwan_Stroke_90 (para SQL Server 2005) o Chinese_Traditional_Stroke_Count_100 (para SQL Server 2008 y versiones posteriores).
Otras regiones (como la región administrativa especial de Hong Kong y la región administrativa especial de Macao) también usan chino tradicional. Para las intercalaciones, en la RAS de Hong Kong, es común ver Chinese_Hong_Kong_Stroke_90 (en SQL Server 2005). En la SAR de Macao, Chinese_Traditional_Stroke_Count_100 (en SQL Server 2008 y versiones posteriores) se usa con bastante frecuencia.
Para japonés, la intercalación más usada es Japanese_CI_AS. Japanese_XJIS_100 se usa en instalaciones que admiten JIS2004. Japanese_BIN2 normalmente se ve en proyectos de migración de datos, con datos procedentes de plataformas que no son de Windows o de orígenes de datos distintos del motor de base de datos relacional de SQL Server.
Japanese_Bushu_Kakusu_100 rara vez se ve en servidores que ejecutan cargas de trabajo de Analysis Services.
Korean_100 se recomienda para coreano. Aunque Korean_Wansung_Unicode todavía está disponible en la lista, está en desuso.
Sensibilidad a mayúsculas y minúsculas de los identificadores de los objetos
A partir de SQL Server 2012 SP2, la sensibilidad a mayúsculas y minúsculas de los identificadores de objeto se aplica independientemente de la ordenación, pero el comportamiento varía según el idioma.
| Script de lenguaje | Distinción entre mayúsculas y minúsculas |
|---|---|
| Alfabeto latino básico | Los identificadores de objeto expresados en script latino (cualquiera de las 26 letras mayúsculas o minúsculas en inglés) se tratan como sin distinción entre mayúsculas y minúsculas, independientemente de la intercalación. Por ejemplo, los siguientes identificadores de objeto se consideran idénticos: 54321abcdef, 54321ABCDEF, 54321AbCdEf. Internamente, Analysis Services trata los caracteres de la cadena como si todos estuvieran en mayúsculas y, a continuación, realiza una comparación de bytes simple que es independiente del lenguaje. Tenga en cuenta que solo se ven afectados los 26 caracteres. Si el idioma es de Europa Occidental, pero usa caracteres escandinavos, el carácter adicional no estará en mayúsculas. |
| Cirílico, griego, coptico, armenio | Los identificadores de objetos en alfabeto bicameral no latino, como el cirílico, siempre distinguen entre mayúsculas y minúsculas. Por ejemplo, Измерение y измерение se consideran dos valores distintos, aunque la única diferencia es el caso de la primera letra. |
Implicaciones de la distinción entre mayúsculas y minúsculas para los identificadores de objeto
Solo los identificadores de objeto y no los nombres de objeto están sujetos a las reglas de uso de mayúsculas descritas en la tabla. Si ve un cambio en el funcionamiento de la solución (una comparación anterior y posterior, después de instalar SQL Server 2012 SP2 o posterior), probablemente será un problema de procesamiento. Las consultas no se ven afectadas por identificadores de objeto. Para los lenguajes de consulta (DAX y MDX), el motor de fórmulas usa el nombre de objeto (no el identificador).
Nota:
Los cambios de código relacionados con la distinción de mayúsculas y minúsculas han sido un cambio importante para algunas aplicaciones. Vea Cambios importantes en las características de Analysis Services en SQL Server 2014 para obtener más información.
Pruebas de configuración regional con Excel, SQL Server Profiler y SQL Server Management Studio
Al probar las traducciones, la conexión debe especificar el LCID de la traducción. Como se documenta en Obtener un lenguaje diferente de SSAS en Excel, puede usar Excel para probar las traducciones.
Para ello, edite manualmente el archivo .odc para incluir la propiedad de cadena de conexión del identificador de configuración regional. Pruebe esto con la base de datos multidimensional de ejemplo Adventure Works.
Busque archivos .odc existentes. Cuando encuentre el archivo multidimensional de Adventure Works, haga clic con el botón derecho en el archivo para abrirlo en el Bloc de notas.
Agregue
Locale Identifier=1036a la cadena de conexión. Guarde y cierre el archivo.Abrir Excel | Datos | Conexiones existentes. Filtre la lista para solo los archivos de conexiones de este equipo. Busque la conexión para Adventure Works (examine detenidamente el nombre; es posible que tenga más de uno). Abrir la conexión.
Deberías ver las traducciones al francés de la base de datos de ejemplo de Adventure Works.
Tabla dinámica de
Como seguimiento, puede usar SQL Server Profiler para confirmar la configuración regional. Haga clic en un Session Initialize evento y, a continuación, examine la lista de propiedades en el área de texto siguiente para buscar <localeidentifier>1036</localeidentifier>.
En Management Studio, puede especificar el identificador de configuración regional en una conexión de servidor.
En el Explorador de objetos | Conectar | Analysis Services | Opciones, haga clic en la pestaña Parámetros de conexión adicionales .
Escriba
Local Identifier=1036y haga clic en Conectar.Ejecute una consulta MDX en la base de datos Adventure Works. Los resultados de la consulta deben ser las traducciones en francés.
Escritura de consultas MDX en una solución que contiene traducciones
Las traducciones proporcionan información para mostrar los nombres de los objetos de Analysis Services, pero los identificadores de los mismos objetos no se traducen. Siempre que sea posible, use los identificadores y claves de los objetos de Analysis Services en lugar de los títulos y nombres traducidos. Por ejemplo, use claves de miembro en lugar de nombres de miembro para instrucciones y scripts de expresiones multidimensionales (MDX) para garantizar la portabilidad entre varios lenguajes.
Nota:
Recuerde que los nombres de objeto tabulares siempre son insensibles a mayúsculas y minúsculas, independientemente de la configuración de ordenamiento. Por otro lado, los nombres de objetos multidimensionales siguen la distinción entre mayúsculas y minúsculas de la ordenación. Puesto que solo los nombres de objetos multidimensionales distinguen entre mayúsculas y minúsculas, asegúrese de que todas las consultas MDX que hacen referencia a objetos multidimensionales tienen el uso correcto de mayúsculas y minúsculas.
Escritura de consultas MDX que contienen valores de fecha y hora
Las sugerencias siguientes para hacer que las consultas MDX basadas en fecha y hora sean más portátiles en distintos idiomas:
Usar elementos numéricos para comparaciones y operaciones
Al realizar comparaciones y operaciones de mes y día de semana, use las partes numéricas de fecha y hora en lugar de los equivalentes de cadena (por ejemplo, use MonthNumberofYear en lugar de MonthName). Los valores numéricos se ven menos afectados por las diferencias en las traducciones de idioma.
Uso de equivalentes de cadena en un conjunto de resultados
Al compilar conjuntos de resultados vistos por los usuarios finales, considere la posibilidad de usar la cadena (como MonthName) para que la audiencia multilingüe pueda beneficiarse de las traducciones proporcionadas.
Usar formatos de fecha ISO para la información de fecha y hora universal
Un experto de Analysis Services tiene esta recomendación: "Siempre uso el formato de fecha ISO aaaa-mm-dd para cualquier cadena de fecha que pase a las consultas en SQL o MDX porque es inequívoca y funcionará independientemente de la configuración regional del cliente o servidor. Acepto que el servidor debe respetar sus ajustes regionales al analizar un formato de fecha ambiguo, pero también creo que si hay una opción que no es ambigua, es mejor elegirla de todos modos.
Use the Format function to enforce a specific format, regardless of regional language settingsLa siguiente consulta MDX, tomada de una entrada de foro, muestra cómo usar Format para devolver fechas en un formato específico, independientemente de la configuración regional subyacente.
Consulte SSAS 2012 genera fechas no válidas (entrada de foro en Network Steve para la publicación original.
WITH MEMBER [LinkTimeAdd11Date_Manual] as Format(dateadd("d",15,"2014-12-11"), "mm/dd/yyyy") member [LinkTimeAdd15Date_Manual] as Format(dateadd("d",11,"2014-12-13"), "mm/dd/yyyy") SELECT { [LinkTimeAdd11Date_Manual] ,[LinkTimeAdd15Date_Manual] } ON COLUMNS FROM [Adventure Works]
Véase también
Escenarios de globalización para Analysis Services Multidimensional
Escribir instrucciones Transact-SQL internacionales