Que significa COLLATE SQL_Latin1_General_CP1_CI_AS?
hola soy nueva programando tengo que revisar unas tablas y nose que significa COLLATE SQL_Latin1_General_CP1_CI_AS porfa ayudemme!
Esto es manejable en SQL-2000 Server
COLLATE
Una cláusula que se puede aplicar a una definición de base de datos o a una definición de columna para definir la intercalación o una expresión de cadena de caracteres para aplicar a una conversión de intercalación.
Sintaxis
COLLATE {< collation_name > | database_default}
< collation_name > :: =
{ Windows_collation_name } | { SQL_collation_name }
Argumentos
collation_name
Es el nombre de la intercalación que se va a aplicar a la expresión, la definición de columna o la definición de base de datos. La intercalación especificada en collation_name sólo puede ser una Windows_collation_name o una SQL_collation_name especificada.
Windows_collation_name
Es el nombre de intercalación de la intercalación de Windows. Consulte Nombres de intercalación de Windows.
SQL_collation_name
Es el nombre de intercalación de la intercalación SQL. Consulte Nombres de intercalación SQL.
database_default
Hace que la cláusula COLLATE herede la intercalación de la base de datos actual.
Observaciones
La cláusula COLLATE se puede especificar en varios niveles, incluidos los siguientes:
Crear o alterar una base de datos.
Puede utilizar la cláusula COLLATE de la instrucción CREATE DATABASE o ALTER DATABASE para especificar la intercalación predeterminada de la base de datos. También puede especificar una intercalación al crear una base de datos mediante el Administrador corporativo de SQL Server. Si no especifica ninguna intercalación, se asigna a la base de datos la intercalación predeterminada de la instancia de SQL Server.
Crear o alterar una columna de una tabla.
Puede especificar intercalaciones para cada columna de cadena de caracteres mediante la cláusula COLLATE de la instrucción CREATE TABLE o ALTER TABLE. También puede especificar una intercalación al crear una tabla mediante el Administrador corporativo de SQL Server. Si no especifica ninguna intercalación, se asigna a la columna la intercalación predeterminada de la base de datos.
También puede utilizar la opción database_default de la cláusula COLLATE para especificar que una columna de una tabla temporal utiliza la intercalación predeterminada de la base de datos del usuario actual para la conexión en vez de usar tempdb.
Convertir la intercalación de una expresión.
Puede utilizar la cláusula COLLATE para convertir una expresión de caracteres en una intercalación concreta. La intercalación predeterminada de la base de datos actual se asigna a los literales y las variables de carácter. La intercalación de definición de la columna se asigna a las referencias de columnas. Para intercalar una expresión, consulte Precedencia de intercalación.
La intercalación de un identificador depende del nivel en que está definido. Se asigna a los identificadores de objetos de instancia, como los inicios de sesión y los nombres de base de datos la intercalación predeterminada de la instancia. Se asigna a los identificadores de objetos de una base de datos, como nombres de tablas, vistas y columnas, la intercalación predeterminada de la base de datos. Por ejemplo, es posible crear dos tablas con nombres que sólo se diferencian en las mayúsculas en una base de datos con intercalación que distinga entre mayúsculas y minúsculas, pero no se pueden crear en una base de datos que no distinga entre mayúsculas y minúsculas.
Las variables, etiquetas GOTO, procedimientos almacenados temporales y tablas temporales pueden crearse cuando se asocia el contexto de conexión a una base de datos y, a continuación, se les hace referencia cuando se ha cambiado el contexto a otra base de datos. Los identificadores para variables, etiquetas GOTO, procedimientos almacenados temporales y tablas temporales se encuentran en la intercalación predeterminada de la instancia.
La cláusula COLLATE sólo se puede aplicar a los tipos de datos char, varchar, text, nchar, nvarchar y ntext.
Las intercalaciones se identifican normalmente por un nombre de intercalación. La excepción está en Setup donde no especifica un nombre de intercalación para intercalaciones Windows; en su lugar, especifique el designador de intercalación y, a continuación, active las casillas de verificación para especificar la ordenación binaria o la ordenación de diccionario que distingue o no distingue mayúsculas y minúsculas y tildes.
Puede ejecutar la función del sistema fn_helpcollations para recuperar una lista de todos los nombres de intercalación válidos para intercalaciones Windows e intercalaciones de SQL:
SELECT *
FROM ::fn_helpcollations()
SQL Server sólo admite páginas de códigos compatibles con el sistema operativo subyacente. Cuando ejecuta una acción que depende de intercalaciones, la intercalación SQL Server que utiliza el objeto de referencia debe utilizar una página de códigos compatible con el sistema operativo del equipo. Dichas acciones pueden incluir:
Especificar una intercalación predeterminada para una base de datos durante su creación.
Especificar una intercalación para una columna durante la creación o la alteración de una tabla.
Cuando se restaura o anexa una base de datos, la intercalación predeterminada de la base de datos y la intercalación de las columnas char, varchar y text o los parámetros de la base de datos deben ser compatibles con el sistema operativo.
Las traducciones de páginas de códigos se admiten para los tipos de datos char y varchar, pero no para el tipo de datos text. Data loss during code page translations is not reported.
Si la intercalación especificada o la intercalación que utiliza el objeto de referencia, usa una página de códigos que no es compatible con los sistemas operativos Windows® , SQL Server devuelve un error. Para obtener más información, consulte la sección Intercalaciones en el capítulo Arquitectura de SQL Server de los Libros en pantalla de SQL Server.
Se tiene que tener cuidado con el manejo de esta propiedad ya que si se requiere hacer una consulta entre dos tablas y utilizar un dterminado campo y este no contiene el mismo tipo la consulta marcara un error
Espero que te funcione de hecho lo saque de la ayuda jijijijiji
COLLATE
Una cláusula que se puede aplicar a una definición de base de datos o a una definición de columna para definir la intercalación o una expresión de cadena de caracteres para aplicar a una conversión de intercalación.
Sintaxis
COLLATE {< collation_name > | database_default}
< collation_name > :: =
{ Windows_collation_name } | { SQL_collation_name }
Argumentos
collation_name
Es el nombre de la intercalación que se va a aplicar a la expresión, la definición de columna o la definición de base de datos. La intercalación especificada en collation_name sólo puede ser una Windows_collation_name o una SQL_collation_name especificada.
Windows_collation_name
Es el nombre de intercalación de la intercalación de Windows. Consulte Nombres de intercalación de Windows.
SQL_collation_name
Es el nombre de intercalación de la intercalación SQL. Consulte Nombres de intercalación SQL.
database_default
Hace que la cláusula COLLATE herede la intercalación de la base de datos actual.
Observaciones
La cláusula COLLATE se puede especificar en varios niveles, incluidos los siguientes:
Crear o alterar una base de datos.
Puede utilizar la cláusula COLLATE de la instrucción CREATE DATABASE o ALTER DATABASE para especificar la intercalación predeterminada de la base de datos. También puede especificar una intercalación al crear una base de datos mediante el Administrador corporativo de SQL Server. Si no especifica ninguna intercalación, se asigna a la base de datos la intercalación predeterminada de la instancia de SQL Server.
Crear o alterar una columna de una tabla.
Puede especificar intercalaciones para cada columna de cadena de caracteres mediante la cláusula COLLATE de la instrucción CREATE TABLE o ALTER TABLE. También puede especificar una intercalación al crear una tabla mediante el Administrador corporativo de SQL Server. Si no especifica ninguna intercalación, se asigna a la columna la intercalación predeterminada de la base de datos.
También puede utilizar la opción database_default de la cláusula COLLATE para especificar que una columna de una tabla temporal utiliza la intercalación predeterminada de la base de datos del usuario actual para la conexión en vez de usar tempdb.
Convertir la intercalación de una expresión.
Puede utilizar la cláusula COLLATE para convertir una expresión de caracteres en una intercalación concreta. La intercalación predeterminada de la base de datos actual se asigna a los literales y las variables de carácter. La intercalación de definición de la columna se asigna a las referencias de columnas. Para intercalar una expresión, consulte Precedencia de intercalación.
La intercalación de un identificador depende del nivel en que está definido. Se asigna a los identificadores de objetos de instancia, como los inicios de sesión y los nombres de base de datos la intercalación predeterminada de la instancia. Se asigna a los identificadores de objetos de una base de datos, como nombres de tablas, vistas y columnas, la intercalación predeterminada de la base de datos. Por ejemplo, es posible crear dos tablas con nombres que sólo se diferencian en las mayúsculas en una base de datos con intercalación que distinga entre mayúsculas y minúsculas, pero no se pueden crear en una base de datos que no distinga entre mayúsculas y minúsculas.
Las variables, etiquetas GOTO, procedimientos almacenados temporales y tablas temporales pueden crearse cuando se asocia el contexto de conexión a una base de datos y, a continuación, se les hace referencia cuando se ha cambiado el contexto a otra base de datos. Los identificadores para variables, etiquetas GOTO, procedimientos almacenados temporales y tablas temporales se encuentran en la intercalación predeterminada de la instancia.
La cláusula COLLATE sólo se puede aplicar a los tipos de datos char, varchar, text, nchar, nvarchar y ntext.
Las intercalaciones se identifican normalmente por un nombre de intercalación. La excepción está en Setup donde no especifica un nombre de intercalación para intercalaciones Windows; en su lugar, especifique el designador de intercalación y, a continuación, active las casillas de verificación para especificar la ordenación binaria o la ordenación de diccionario que distingue o no distingue mayúsculas y minúsculas y tildes.
Puede ejecutar la función del sistema fn_helpcollations para recuperar una lista de todos los nombres de intercalación válidos para intercalaciones Windows e intercalaciones de SQL:
SELECT *
FROM ::fn_helpcollations()
SQL Server sólo admite páginas de códigos compatibles con el sistema operativo subyacente. Cuando ejecuta una acción que depende de intercalaciones, la intercalación SQL Server que utiliza el objeto de referencia debe utilizar una página de códigos compatible con el sistema operativo del equipo. Dichas acciones pueden incluir:
Especificar una intercalación predeterminada para una base de datos durante su creación.
Especificar una intercalación para una columna durante la creación o la alteración de una tabla.
Cuando se restaura o anexa una base de datos, la intercalación predeterminada de la base de datos y la intercalación de las columnas char, varchar y text o los parámetros de la base de datos deben ser compatibles con el sistema operativo.
Las traducciones de páginas de códigos se admiten para los tipos de datos char y varchar, pero no para el tipo de datos text. Data loss during code page translations is not reported.
Si la intercalación especificada o la intercalación que utiliza el objeto de referencia, usa una página de códigos que no es compatible con los sistemas operativos Windows® , SQL Server devuelve un error. Para obtener más información, consulte la sección Intercalaciones en el capítulo Arquitectura de SQL Server de los Libros en pantalla de SQL Server.
Se tiene que tener cuidado con el manejo de esta propiedad ya que si se requiere hacer una consulta entre dos tablas y utilizar un dterminado campo y este no contiene el mismo tipo la consulta marcara un error
Espero que te funcione de hecho lo saque de la ayuda jijijijiji
Hola,
Perdona, yo no se lo que significa intercalación ni para que sirve, me lo podrias explicar.
Tengo una Base de Datos SQL Server y en una de sus tablas hay campos de tipo nvarchar que contienen cadenas con acentos. Pero los acentos no se leen bien desde otra herramienta que se ejecuta en un sistema UNIX.
Podria solucionar el problema con el COLLATE?
Gracias
Rosa
Perdona, yo no se lo que significa intercalación ni para que sirve, me lo podrias explicar.
Tengo una Base de Datos SQL Server y en una de sus tablas hay campos de tipo nvarchar que contienen cadenas con acentos. Pero los acentos no se leen bien desde otra herramienta que se ejecuta en un sistema UNIX.
Podria solucionar el problema con el COLLATE?
Gracias
Rosa
