Cambios recientes en las características del Motor de base de datos de SQL Server 2008
En este tema, se describen cambios importantes introducidos en Database Engine (Motor de base de datos). Estos cambios pueden provocar errores en aplicaciones, scripts o funcionalidades que estén basadas en versiones anteriores de SQL Server. Estos problemas se pueden presentar al llevar a cabo la actualización. Para obtener más información, vea Usar el Asesor de actualizaciones para preparar las actualizaciones.
Intercalaciones
Característica |
Descripción |
---|---|
Nuevas intercalaciones |
SQL Server 2008 presenta nuevas intercalaciones que se ajustan totalmente con las que proporciona Windows Server 2008. Estas 80 nuevas intercalaciones han mejorado la precisión lingüística, y para distinguirlas se ha usado *_100 en el nombre de la versión. Si elige una nueva intercalación para el servidor o la base de datos, tenga presente que es posible que los clientes que dispongan de controladores de clientes antiguos no la reconozcan. Las intercalaciones no reconocidas pueden provocar errores en la aplicación. Considere las soluciones siguientes:
Para obtener más información, vea Establecer y cambiar intercalaciones. |
Common Language Runtime (CLR)
Característica |
Descripción |
---|---|
Ensamblados CLR |
Cuando se actualiza una base de datos a SQL Server 2008, automáticamente se instala el ensamblado Microsoft.SqlServer.Types para admitir los nuevos tipos de datos. Las reglas del Asesor de actualizaciones detectan los tipos de usuarios o los ensamblados con nombres problemáticos. El Asesor de actualizaciones aconsejará el cambio de nombre de los ensamblados problemáticos, y en cuanto a los tipos problemáticos, aconsejará el cambio de nombre o el uso de nombres que consten de dos partes en el código para hacer referencia al tipo de usuario existente. Si una actualización de la base de datos detecta un ensamblado del usuario con un nombre problemático, automáticamente cambiará el nombre de dicho ensamblado y colocará la base de datos en modo de sospecha. Si durante la actualización se encuentra un tipo de usuario con un nombre problemático, no se llevará a cabo ningún procedimiento especial. Después de la actualización, existirán tanto el tipo de usuario anterior como el nuevo tipo de sistema. El tipo de usuario solo estará disponible a través de nombres de dos partes. |
Ensamblados CLR |
SQL Server 2008 instala .NET Framework 3.5 SP1, que se encarga de actualizar las bibliotecas de la memoria caché de ensamblados global (GAC). Si tiene bibliotecas no admitidas registradas en una base de datos de SQL Server, es posible que la aplicación de SQL Server deje de funcionar después de realizar la actualización a SQL Server 2008. El motivo es que cuando se da servicio o se actualizan bibliotecas de la GAC, no se actualizan los ensamblados de SQL Server. Si un ensamblado existe tanto en una base de datos de SQL Server como en la GAC, las dos copias deberán coincidir exactamente. Si no coinciden, se producirá un error cuando la integración CLR de SQL Server use el ensamblado. Para obtener más información, vea Bibliotecas de .NET Framework admitidas. Después de actualizar la base de datos, dé servicio o actualice la copia del ensamblado situada en las bases de datos de SQL Server con la instrucción ALTER ASSEMBLY. Para obtener más información, vea el artículo 949080 de Knowledge Base. Para saber si está usando una biblioteca de .NET Framework no admitida en la aplicación, ejecute la consulta siguiente en la base de datos.
|
Rutinas de CLR |
El uso de la suplantación en las funciones CLR definidas por el usuario, los agregados definidos por el usuario o los tipos definidos por el usuario (UDT) puede provocar el error 6522 en la aplicación después de la actualización a SQL Server 2008. La actualización se realiza correctamente en los escenarios de SQL Server 2005 siguientes, pero no así en SQL Server 2008. Se proporcionan soluciones para cada escenario.
|
Vistas de administración dinámica
Vista |
Descripción |
---|---|
sys.dm_os_sys_info |
Se quitan las columnas sqlserver_start_time_cpu_ticks y cpu_ticks_in_ms. |
sys.dm_exec_query_resource_semaphores sys.dm_exec_query_memory_grants |
La columna resource_semaphore_id no es un identificador único en SQL Server 2008. Este cambio puede afectar a la solución de problemas relacionados con la ejecución de la consulta. Para obtener más información, vea sys.dm_exec_query_resource_semaphores (Transact-SQL). |
Errores y eventos
Característica |
Descripción |
---|---|
Errores de inicio de sesión |
En SQL Server 2005, se devuelve el error 18452 cuando se usa un inicio de sesión de SQL para conectar con un servidor que está configurado para usar únicamente la autenticación de Windows. En SQL Server 2008, se devuelve el error 18456 en su lugar. |
Plan de presentación
Característica |
Descripción |
---|---|
Esquema XML del plan de presentación |
Se agrega un nuevo elemento SeekPredicateNew al esquema XML del plan de presentación, y la secuencia xsd envolvente (SqlPredicatesType) se convierte en un elemento <xsd:choice>. En lugar de uno o varios elementos SeekPredicate, ahora pueden aparecer uno o varios elementos SeekPredicateNew en el XML del plan de presentación. Estos dos elementos se excluyen mutuamente. SeekPredicate se mantiene en el esquema XML del plan de presentación por compatibilidad con versiones anteriores; sin embargo, los planes de consulta creados en SQL Server 2008 pueden contener el elemento SeekPredicateNew. En las aplicaciones que solo esperan recuperar el elemento secundario SeekPredicate del nodo ShowPlanXML/BatchSequence/Batch/Statements/StmtSimple/QueryPlan/RelOp/IndexScan/SeekPredicates se puede producir un error si el elemento SeekPredicate no existe. Modifique el código de la aplicación para que espere el elemento SeekPredicate o SeekPredicateNew en este nodo. Para obtener más información, vea Mejoras de procesamiento de consultas en las tablas e índices con particiones. |
Esquema XML del plan de presentación |
Se ha agregado un nuevo atributo IndexKind al tipo complejo ObjectType en el esquema XML del plan de presentación. En las aplicaciones que validen de forma estricta los planes de SQL Server con el esquema de SQL Server 2005 se producirá un error. |
Transact-SQL
Característica |
Descripción |
---|---|
Evento ALTER_AUTHORIZATION_DATABASE DDL |
En SQL Server 2005, cuando se desencadena el evento ALTER_AUTHORIZATION_DATABASE de DDL, se devuelve el valor 'object' en el elemento ObjectType del xml EVENTDATA para este evento si el tipo de entidad del elemento protegible en la operación del lenguaje de definición de datos (DDL) es un objeto. En SQL Server 2008, se devuelve el tipo real (por ejemplo, 'table' o 'function'). |
CONVERT |
Si se pasa un estilo no válido a la función CONVERT, se devuelve un error cuando el tipo de conversión es de binario a carácter o de carácter a binario. En las versiones anteriores de SQL Server, se establece un estilo no válido como estilo predeterminado para las conversiones de binario a carácter y de carácter a binario. |
GRANT/DENY/REVOKE EXECUTE en ensamblados |
No se puede conceder, denegar ni revocar el permiso EXECUTE en los ensamblados. Este permiso no tiene ningún efecto y ahora produce un error. En su lugar, conceda, deniegue o revoque el permiso EXECUTE en los procedimientos almacenados o en las funciones que hacen referencia el método de ensamblado. |
Permisos GRANT/DENY/REVOKE en los tipos del sistema |
No se pueden conceder, denegar ni revocar permisos en los tipos del sistema. En versiones anteriores de SQL Server, estas instrucciones se ejecutaban correctamente, pero no tenían ningún efecto. En SQL Server 2008, se devuelve un error. |
Cláusula OUTPUT |
Para evitar un comportamiento no determinista, la cláusula OUTPUT no puede hacer referencia a una columna desde una vista o una función insertada con valores de tabla si dicha tabla se ha definido mediante uno de los métodos siguientes:
Cuando SQL Server detecta este tipo de columna en la cláusula OUTPUT, se produce el error 4186. Para obtener más información, vea MSSQLSERVER_4186. |
Cláusula OUTPUT INTO |
La tabla de destino de la cláusula OUTPUT INTO no puede tener desencadenadores habilitados. |
Opción precompute rank de nivel de servidor |
Esta opción no se admite en SQL Server 2008. Modifique las aplicaciones que actualmente utilizan esta característica lo antes posible. |
Sugerencia de tabla READPAST |
No se podrá especificar la sugerencia de tabla READPAST cuando la opción de base de datos READ_COMMITTED_SNAPSHOT esté establecida en ON y se cumpla alguna de las condiciones siguientes:
Para especificar la sugerencia READPAST en estos casos, quite la sugerencia de tabla READCOMMITTED, si está presente, e incluya la sugerencia de tabla READCOMMITTEDLOCK en la consulta. |
sp_helpuser |
Los nombres de columna siguientes que se devuelven en el conjunto de resultados del procedimiento almacenado sp_helpuser han cambiado.
Nombre de columna anteriorNombre de columna nuevo
GroupNameRoleName
Group_nameRole_name
Group_idRole_id
Users_in_groupUsers_in_role
|
Cifrado de datos transparente |
El cifrado de datos transparente (TDE) se realiza en el nivel de E/S: la estructura de la página no está cifrada en la memoria y se cifra solo cuando la página se escribe en el disco. Se cifran tanto los archivos de base de datos como los archivos de registro. En las aplicaciones de terceros que omitan el mecanismo habitual de SQL Server para tener acceso a las páginas (por ejemplo, examinando los datos o los archivos de registro directamente), se producirá un error si una base de datos emplea TDE debido a que los datos están cifrados en los archivos. Estas aplicaciones pueden aprovechar la API criptográfica de Windows para desarrollar una solución que permita descifrar los datos desde fuera de SQL Server. |
XQuery
Característica |
Descripción |
---|---|
Compatibilidad con la fecha y la hora |
En SQL Server 2005, los tipos de datos xs:time, xs:date y xs:dateTime no son compatibles con las zonas horarias. Los datos de la zona horaria se asignan a la zona horaria UTC. SQL Server 2008 tiene el comportamiento de compatibilidad estándar, lo que se traduce en los cambios siguientes:
Modifique las aplicaciones y las expresiones XQuery para tener en cuenta los nuevos valores de tipos. Para obtener más información, vea Usar XML con tipos de datos de time, date, datetime2 y datetimeoffset. |
Expresiones de XQuery y XPath |
En SQL Server 2005, se permiten los pasos de una expresión de XQuery o XPath que comienzan con un signo de dos puntos (':'). Por ejemplo, la instrucción siguiente contiene una prueba del nombre (CTR02) dentro de la expresión de ruta de acceso que comienza con dos puntos.
En SQL Server 2008, este uso se rechaza porque no cumple los estándares de XML. Se devuelve el error 9341. Quite el signo de dos puntos inicial o especifique un prefijo para la prueba del nombre, por ejemplo (n$/p1:CTR02) o (n$/CTR02). |
Historial de cambios
Contenido actualizado |
---|
Se ha agregado un cambio importante en las expresiones de XPath y XQuery. |
Vea también