Alterações em recursos do Mecanismo de Banco de Dados que causam interrupção no SQL Server 2012
Este tópico descreve as últimas alterações no SQL Server 2012 Mecanismo de Banco de Dados e versões anteriores do SQL Server. Essas alterações podem danificar aplicativos, scripts ou funcionalidades baseados em versões anteriores do SQL Server. Talvez você encontre esses problemas ao atualizar. Para obter mais informações, consulte Usar o Supervisor de Atualização para preparar para atualizações.
Neste tópico
Alterações recentes no SQL Server 2012
Últimas alterações no SQL Server 2008/SQL Server 2008R2
Alterações recentes no SQL Server 2005
Últimas alterações do SQL Server 2012
Transact-SQL
Recurso |
Descrição |
---|---|
Seleção de colunas ou tabelas denominadas NEXT. |
As sequências usam a função NEXT VALUE FOR do padrão ANSI. Se uma tabela ou coluna for denominada NEXT, e essa tabela ou coluna tiver um alias VALUE e se o padrão ANSI AS for omitido, a instrução resultante poderá causar um erro. Para obter uma solução alternativa, inclua a palavra-chave AS do padrão ANSI. Por exemplo, SELECT NEXT VALUE FROM Table deveria ser reescrito como SELECT NEXT AS VALUE FROM Table e SELECT Col1 FROM NEXT VALUE deveria ser reescrito como SELECT Col1 FROM NEXT AS VALUE. |
operador PIVOT |
O operador PIVOT não é permitido em uma consulta CTE (expressão de tabela comum) recursiva quando o nível de compatibilidade do banco de dados é definido como 110. Escreva a consulta novamente ou altere o nível de compatibilidade para 100 ou menos. O uso de PIVOT e uma consulta CTE recursiva produz resultados incorretos quando há mais de uma única linha por agrupamento. |
sp_setapprole e sp_unsetapprole |
O parâmetro de cookie OUTPUT para sp_setapprole está documentado atualmente como varbinary(8000), que é o comprimento máximo correto. No entanto, a implementação atual retorna varbinary(50). Os aplicativos devem continuar a reservar varbinary(8000) para que o aplicativo continue a operar corretamente se o tamanho de retorno do cookie aumentar em uma versão futura. Para obter mais informações, consulte sp_setapprole (Transact-SQL). |
EXECUTE AS |
O parâmetro OUTPUT de cookie para EXECUTE AS está documentado atualmente como varbinary(8000), que tem o comprimento máximo correto. No entanto, a implementação atual retorna varbinary(100). Os aplicativos devem continuar a reservar varbinary(8000) para que o aplicativo continue a operar corretamente se o tamanho de retorno do cookie aumentar em uma versão futura. Para obter mais informações, consulte EXECUTE AS (Transact-SQL). |
função sys.fn_get_audit_file |
Duas outras colunas (user_defined_event_id e user_defined_information) foram adicionadas para oferecer suporte a eventos de auditoria definidos pelo usuário. Aplicativos que não selecionam colunas por nome podem retornar mais colunas do que o esperado. Selecione as colunas por nome ou ajuste o aplicativo para aceitar essas colunas adicionais. |
Operações CAST e CONVERT em colunas computadas do tipo time ou datetime2 |
Nas versões anteriores do SQL Server, o estilo padrão de operações CAST e CONVERT nos tipos de dados time e datetime2 é 121, exceto quando um dos tipos é usado em uma expressão de coluna computada. Para colunas computadas, o estilo padrão é 0. Esse comportamento afeta as colunas computadas quando são criadas, usadas em consultas que envolvam parametrização automática ou usadas em definições de restrição. No nível de compatibilidade 110, o estilo padrão das operações CAST e CONVERT nos tipos de dados time e datetime2 sempre é 121. Se a sua consulta depender do comportamento antigo, use um nível de compatibilidade inferior a 110 ou especifique explicitamente o estilo 0 na consulta afetada. A atualização do banco de dados para o nível de compatibilidade 110 não alterará os dados de usuário que foram armazenados em disco. Você deve corrigir esses dados manualmente conforme apropriado. Por exemplo, se você usou SELECT INTO para criar uma tabela com base em uma fonte que continha uma expressão de coluna computada descrita acima, os dados (usando o estilo 0) serão armazenados, em vez da própria definição de coluna computada. Você precisará atualizar manualmente esses dados para que coincidam com o estilo 121. |
ALTER TABLE |
A instrução ALTER TABLE permite apenas nomes de tabela de duas partes (schema.object). A especificação de um nome de tabela usando os formatos a seguir agora falhará em tempo de compilação com o erro 117.
As versões anteriores que especificam que o formato server.database.schema.table retornaram o erro 4902. A especificação do formato .database.schema.table ou do formato ..schema.table foi bem-sucedida. Para resolver o problema, remova o uso de um prefixo de 4 partes. |
Navegando em metadados |
Consultar uma exibição usando FOR BROWSE ou SET NO_BROWSETABLE ON agora retorna os metadados da exibição, não os metadados do objeto subjacente. Esse comportamento agora corresponde a outros métodos de navegação em metadados. |
SOUNDEX |
No nível de compatibilidade de banco de dados 110, a função SOUNDEX implementa novas regras que podem fazer com que os valores computados pela função sejam diferentes dos valores computados sob os níveis de compatibilidade anteriores. Após a atualização para o nível de compatibilidade 110, talvez seja necessário recriar os índices, os heaps ou as restrições CHECK que usam a função SOUNDEX. Para obter mais informações, consulte SOUNDEX (Transact-SQL). |
Mensagem de contagem de linhas para instruções DML com falha |
No SQL Server 2012, o Mecanismo de Banco de Dados enviará de forma consistente o token TDS DONE com RowCount: 0 a clientes quando uma instrução DML falhar. Nas versões anteriores do SQL Server, um valor incorreto de -1 é enviado ao cliente quando a instrução DML que falha está contida em um bloco TRY-CATCH é parametrizada automaticamente pelo Mecanismo de Banco de Dados ou o bloco TRY-CATCH não está no mesmo nível da instrução que falhou. Por exemplo, se um bloco TRY-CATCH chamar um procedimento armazenado e uma instrução DML no procedimento falhar, o cliente receberá incorretamente um valor -1. Os aplicativos que confiarem nesse comportamento incorreto falharão. |
SERVERPROPERTY (‘Edition’) |
Edição instalada do produto da instância do SQL Server 2012. Use o valor dessa propriedade para determinar os recursos e os limites, como o número máximo de CPUs que têm suporte do produto instalado. Com base na Enterprise Edition instalada, ele pode retornar ‘Enterprise Edition’ ou ‘Enterprise Edition: licenciamento baseado em núcleo’. As edições Enterprise são diferenciadas com base na capacidade de computação máxima por uma única instância do SQL Server. Para obter mais informações sobre limites de capacidade de computação no SQL Server 2012, consulte Computar limites de capacidade por edição do SQL Server. |
CREATE LOGIN |
A opção CREATE LOGIN WITH PASSWORD = 'password' HASHED não pode ser usada com os hashes criados por SQL Server 7 ou anterior. |
Operações CAST e CONVERT para datetimeoffset |
Os únicos estilos que têm suporte ao serem convertidos de tipos de data e hora para datetimeoffset são 0 ou 1. Todos os outros estilos de conversão retornam erro 9809. Por exemplo, o seguinte código retorna um erro 9809.
|
SET ROWCOUNT |
O comportamento do SET ROWCOUNT foi alterado para melhorar a eficiência de várias consultas comuns, podendo afetar os planos de consulta para os níveis de compatibilidade 110 e superior. Um erro que pode ocorrer quando a instrução SET ROWCOUNT altera o valor ROWCOUNT para 0 ou de 0 depois de uma instrução DECLARE CURSOR e antes de uma FETCH. Para evitar este erro, defina o nível de compatibilidade do banco de dados para 100 ou defina o ROWCOUNT fora das instruções do cursor. |
Exibições de gerenciamento dinâmico
Exibição |
Descrição |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sys.dm_exec_requests |
As alterações de coluna de comando de nvarchar(16) para nvarchar(32). |
||||||||||||
sys.dm_os_memory_cache_counters |
As colunas a seguir foram renomeadas.
|
||||||||||||
sys.dm_os_memory_cache_entries |
A coluna pages_allocated_count foi renomeada como pages_kb. |
||||||||||||
sys.dm_os_memory_clerks |
A coluna multi_pages_kb foi removida. A coluna single_pages_kb foi renomeada como pages_kb. |
||||||||||||
sys.dm_os_memory_nodes |
As colunas a seguir foram renomeadas.
|
||||||||||||
sys.dm_os_memory_objects |
As colunas a seguir foram renomeadas.
|
||||||||||||
sys.dm_os_sys_info |
As colunas a seguir foram renomeadas.
|
||||||||||||
sys.dm_os_workers |
A coluna de localidade foi removida. |
Exibições de catálogo
Exibição |
Descrição |
---|---|
sys.data_spaces sys.partition_schemes sys.filegroups sys.partition_functions |
Uma nova coluna, is_system, foi adicionada a sys.data_spaces e sys.partition_functions. (sys.partition_schemes e sys.filegroups herdam as colunas de sys.data_spaces.) Um valor de 1 nessa coluna indica que o objeto foi usado para fragmentos de índice de texto completo. Em sys.partition_functions, sys.partition_schemes e sys.filegroups, a nova coluna não é a última coluna. Revise as consultas existentes que confiam na ordem das colunas retornadas dessas exibições de catálogo. |
Tipos de dados de SQL CLR (geometria, geografia e hierarchyid)
O assembly Microsoft.SqlServer.Types.dll, que contém os tipos de dados espaciais e do tipo hierarchyid, foi atualizado da versão 10.0 para a versão 11.0. Aplicativos personalizados que referenciam esse assembly poderão falhar quando as condições a seguir forem verdadeiras.
Quando você mover um aplicativo personalizado de um computador no qual o SQL Server 2008 R2 foi instalado para um computador em que somente o SQL Server 2012 está instalado, o aplicativo falhará porque a versão referenciada 10.0 do assembly SqlTypes não está presente. Talvez você receba esta mensagem de erro: “Could not load file or assembly 'Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.”
Quando você fizer referência ao assembly SqlTypes versão 11.0, e a versão 10.0 também estiver instalada, talvez você receba esta mensagem de erro: “System.InvalidCastException: Unable to cast object of type 'Microsoft.SqlServer.Types.SqlGeometry' to type 'Microsoft.SqlServer.Types.SqlGeometry'.”
Quando você referenciar o assembly SqlTypes versão 11.0 de um aplicativo personalizado com os destinos .NET 3.5, 4 ou 4.5, o aplicativo falhará porque o SqlClient carrega a versão 10.0 do assembly por design. Essa falha ocorre quando o aplicativo chama um dos seguintes métodos:
O método GetValue da classe SqlDataReader
O método GetValues da classe SqlDataReader
operador de índice de colchete [] da classe SqlDataReader
O método ExecuteScalar da classe SqlCommand
Você pode contornar esse problema usando um dos seguintes métodos:
Você pode contornar esse problema no seu código chamando o método GetSqlBytes, em vez dos métodos Get listados acima, para recuperar tipos de sistema CLR do SQL Server, conforme mostrado no exemplo a seguir:
string query = "SELECT [SpatialColumn] FROM [SpatialTable]"; using (SqlConnection conn = new SqlConnection("...")) { SqlCommand cmd = new SqlCommand(query, conn); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { // In version 11.0 only SqlGeometry g = SqlGeometry.Deserialize(reader.GetSqlBytes(0)); // In version 10.0 or 11.0 SqlGeometry g2 = new SqlGeometry(); g.Read(new BinaryReader(reader.GetSqlBytes(0).Stream)); } }
Você pode contornar esse problema usando redirecionamento de assembly no arquivo de configuração de aplicativo, conforme mostrado no seguinte exemplo:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> ... <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" /> </dependentAssembly> ... </assemblyBinding> <runtime>
Você pode contornar esse problema na sua cadeia de conexão especificando um valor "SQL Server 2012" para o atributo "Type System Version" para forçar o SqlClient a carregar a versão 11.0 do assembly. Esse atributo de cadeia de conexão está disponível apenas no .NET 4.5 e versões superiores.
A marca assemblyBinding deve ser encapsulada na marca runtime.
Suporte para AWE
O suporte ao recurso AWE (Address Windowing Extensions) de 32 bits foi descontinuado. Isso poderá resultar em desempenho mais lento em sistemas operacionais de 32 bits. Para instalações que usam quantidades de memória grandes, migre para um sistema operacional de 64 bits.
As funções XQuery reconhecem substituições
A recomendação W3C para funções e operadores XQuery requer que eles considerem um par substituto que representa um caractere Unicode no intervalo alto como um glifo único na codificação UTF-16. No entanto, nas versões do SQL Server anteriores ao SQL Server 2012, as funções de cadeia de caracteres não reconheciam pares substitutos como um caracteres único. Algumas operações de cadeia de caracteres – como cálculos de comprimento da cadeia de caracteres e extrações de subcadeia de caracteres – retornavam resultados incorretos. Agora o SQL Server 2012 oferece total suporte ao UTF-16 e à manipulação correta de pares substitutos.
O tipo de dados XML no SQL Server permite apenas pares substitutos bem formados. No entanto, algumas funções ainda podem retornar resultados indefinidos ou inesperados em certas circunstâncias, pois é possível passar pares substitutos inválidos ou parciais para funções XQuery como valores de cadeia de caracteres. Considere os seguintes métodos para gerar valores da cadeia de caracteres ao usar XQuery no SQL Server:
Forneça um valor da cadeia de caracteres constante como um valor binário. Durante o uso desse método, continua sendo possível passar pares substitutos inválidos ou parciais.
Forneça um valor da cadeia de caracteres constante fornecendo entidades de caractere. Durante o uso desse método, não é possível passar pares substitutos inválidos ou parciais. As funções XQuery requerem uma entidade de caractere único para o caracteres de alto nível. Essas funções gerarão um erro se as entidades de caracteres para os caracteres de pares substitutos forem fornecidas.
Para importar valores externos, use sql:column ou sql:variable. Durante o uso desses métodos, continua sendo possível introduzir pares substitutos inválidos ou parciais.
Funções e operadores XQuery afetados
Agora, as seguintes funções e operadores XQuery manipulam pares substitutos UTF-16 corretamente no SQL Server 2012:
fn:string-length. No entanto, se um par substituto inválido ou parcial for passado como um argumento, o comportamento de string-length será indefinido.
fn:substring.
fn:contains. No entanto, se um par substituto parcial for passado como um valor, contains poderá retornar resultados inesperados, pois pode encontrar o par substituto parcial contido no par substituto bem formado.
fn:concat. No entanto, se um par substituto parcial for passado como um valor, concat poderá produzir pares substitutos incorretos ou parciais.
Operadores de comparação e a cláusula order by. Os operadores de comparação incluem +, <, >, <=, >=, eq, lt, gt, le e ge.
Chamadas de consulta distribuída a um procedimento de sistema
Chamadas de consulta distribuída por OPENQUERY para alguns procedimentos de sistema que falharão quando chamadas de um servidor para outro. Isto ocorre quando o Mecanismo de Banco de Dados não pode descobrir metadados para um procedimento. Por exemplo, SELECT * FROM OPENQUERY(..., 'EXEC xp_loginfo').
Compatibilidade com versões anteriores
O novo comportamento depende do nível de compatibilidade
As seguintes funções e operadores demonstram o novo comportamento descrito acima somente quando o nível de compatibilidade é 110 ou superior:
fn:contains.
fn:concat.
operadores de comparação e cláusula order by
O novo comportamento depende do URI de namespace padrão para funções
As funções a seguir demonstram o novo comportamento descrito acima somente quando o URI de namespace padrão corresponde ao namespace na recomendação final, ou seja, http://www.w3.org/2005/xpath-functions. Quando o nível de compatibilidade é 110 ou superior, por padrão, o SQL Server 2012 associa o namespace da função padrão a esse namespace. No entanto, essas funções demonstram o novo comportamento quando esse namespace é usado, independentemente do nível de compatibilidade.
fn:string-length
fn:substring
Voltar ao início
Últimas alterações no SQL Server 2008/SQL Server 2008R2
Esta seção contém as últimas alterações introduzidas no SQL Server 2008. Nenhuma alteração foi introduzida no SQL Server 2008 R2.
Agrupamentos
Recurso |
Descrição |
---|---|
Novos agrupamentos |
O SQL Server 2008 introduz novos agrupamentos totalmente alinhados aos agrupamentos fornecidos pelo Windows Server 2008. Esses 80 novos agrupamentos melhoraram a exatidão linguística e foram indicados por referências à versão *_100. Se você escolher um agrupamento novo para o servidor ou para o banco de dados, lembre-se de que o agrupamento pode não ser reconhecido pelos clientes com drivers de clientes mais antigos. Agrupamentos não reconhecidos podem fazer com que o aplicativo retorne erros e apresente falhas. Considere as seguintes soluções:
|
CLR (Common Language Runtime)
Recurso |
Descrição |
---|---|
Assemblies CLR |
Quando um banco de dados é atualizado para SQL Server 2008, o assembly do Microsoft.SqlServer.Types para dar suporte a novos tipos de dados é instalado automaticamente. As regras do Supervisor de Atualização detectam qualquer tipo de usuário ou assemblies de usuário com nomes conflitantes. O Supervisor de Atualização aconselhará renomear qualquer assembly em conflito, bem como qualquer tipo em conflito, ou usar nomes de duas partes no código para fazer referência a esse tipo de usuário preexistente. Se uma atualização de banco de dados detectar um assembly de usuário com um nome conflitante, ele o renomeará automaticamente e o colocará no banco de dados em modo de suspeição. Se um tipo de usuário com nome conflitante existir durante a atualização, nenhuma etapa especial será efetuada. Depois da atualização, existirão ambos os tipos de usuário, antigo e novo. O tipo de usuário estará disponível somente por meio de nomes de duas partes. |
Assemblies CLR |
O SQL Server 2008 instala o .NET Framework 3.5 SP1, que atualiza bibliotecas no GAC (cache de assembly global). Se você tiver bibliotecas sem-suporte registradas em um banco de dados do SQL Server, o aplicativo do SQL Server poderá parar de funcionar após a atualização para o SQL Server 2008. Isso ocorre porque o serviço de reparo ou a atualização de bibliotecas no GAC não atualiza os assemblies dentro do SQL Server. Se um assembly existir tanto em um banco de dados do SQL Server como no GAC, as duas cópias do assembly deverão ser exatamente iguais. Caso isso não aconteça, ocorrerá um erro quando o assembly for usado pela integração CLR do SQL Server. Para obter mais informações, consulte Bibliotecas do .NET Framework compatíveis. Depois de atualizar o banco de dados, mantenha ou atualize a cópia do assembly dentro dos bancos de dados do SQL Server com a instrução ALTER ASSEMBLY. Para obter mais informações, consulte o Artigo 949080 da Base de Dados de Conhecimento. Para detectar se você está usando uma biblioteca do .NET Framework sem-suporte no aplicativo, execute a seguinte consulta no banco de dados.
|
Rotinas CLR |
O uso da representação dentro de funções CLR definidas pelo usuário, de agregações definidas pelo usuário ou de UDTs (tipos definidos pelo usuário) pode causar o erro 6522 no aplicativo após a atualização para o SQL Server 2008. Os cenários a seguir são executados com êxito no SQL Server 2005, mas falham no SQL Server 2008. São apresentadas resoluções para cada cenário.
|
Exibições de gerenciamento dinâmico
Exibição |
Descrição |
---|---|
sys.dm_os_sys_info |
Removidas as colunas cpu_ticks_in_ms e sqlserver_start_time_cpu_ticks. |
sys.dm_exec_query_resource_semaphores sys.dm_exec_query_memory_grants |
A coluna resource_semaphore_id não é uma ID exclusiva no SQL Server 2008. Essa alteração pode afetar a execução de consulta de solução de problemas. Para obter mais informações, consulte sys.dm_exec_query_resource_semaphores (Transact-SQL). |
Erros e eventos
Recurso |
Descrição |
---|---|
Erros de logon |
No SQL Server 2005, o erro 18452 é retornado quando um logon do SQL é usado para conexão a um servidor configurado para usar somente a Autenticação do Windows. No SQL Server 2008, o erro 18456 é retornado. |
Plano de Execução
Recurso |
Descrição |
---|---|
Esquema Showplan XML |
Um novo elemento SeekPredicateNew é adicionado ao esquema Showplan XML, e a sequência de xsd de inclusão (SqlPredicatesType) é convertida em um item <xsd:choice>. Em vez de um ou mais elementos SeekPredicate, um ou mais elementos SeekPredicateNew podem aparecer agora no Showplan XML. Os dois elementos são mutuamente exclusivos. SeekPredicate é mantido no esquema Showplan XML para compatibilidade com versões anteriores. No entanto, os planos de consulta criados no SQL Server 2008 podem conter o elemento SeekPredicateNew. Os aplicativos que esperam recuperar somente o filho de SeekPredicate do nó ShowPlanXML/BatchSequence/Lote/Instruções/StmtSimple/QueryPlan/RelOp/IndexScan/SeekPredicates poderá falhar, se o elemento SeekPredicate não existir. Reescreva o aplicativo para esperar o elemento SeekPredicate ou SeekPredicateNew neste nó. Para obter mais informações, consulte . |
Esquema Showplan XML |
Um novo atributo IndexKind é adicionado ao tipo complexo de ObjectType no esquema do Showplan XML. Haverá falha nos aplicativos que validam estritamente os planos do SQL Server em relação ao esquema do SQL Server 2005. |
Transact-SQL
Recurso |
Descrição |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Evento DDL ALTER_AUTHORIZATION_DATABASE |
No SQL Server 2005, quando o evento DDL ALTER_AUTHORIZATION_DATABASE é acionado, o valor 'object' é retornado no elemento ObjectType do xml EVENTDATA para esse evento quando o tipo de entidade do protegível na operação de linguagem de definição de dados (DDL) é um objeto. No SQL Server 2008, o tipo real (por exemplo, 'table' ou 'function') é retornado. |
||||||||||
CONVERT |
Se um estilo inválido for passado para a função CONVERT, será retornado um erro quando o tipo de conversão for de binário em caractere ou de caractere em binário. Em versões anteriores do SQL Server, o estilo inválido era definido como o estilo padrão para conversões de binário em caractere e de caractere em binário. |
||||||||||
GRANT/DENY/REVOKE EXECUTE em assemblies |
A permissão EXECUTE não pode ser concedida, negada ou revogada para assemblies. Essa permissão não tem nenhum efeito e agora provoca um erro. Em vez disso, conceda, negue ou revogue a permissão EXECUTE nos procedimentos armazenados ou nas funções que fazem referência ao método de assembly. |
||||||||||
Permissões GRANT/DENY/REVOKE em tipos de sistema |
As permissões não podem ser concedidas, negadas ou revogadas para tipos de sistema. Em versões anteriores do SQL Server, essas instruções tinham êxito, mas não tinham nenhum efeito. No SQL Server 2008, um erro é retornado. |
||||||||||
GROUP BY |
A cláusula GROUP BY não pode conter uma subconsulta em uma expressão que é usada pela lista group by. Em versões anteriores do SQL Server, isso era permitido. No SQL Server 2008, o erro 144 é retornado. Por exemplo, o código a seguir terá êxito no SQL Server 2005 e falhará no SQL Server 2008.
|
||||||||||
Cláusula OUTPUT |
Para evitar comportamento não determinístico, a cláusula OUTPUT não pode fazer referência a uma coluna de uma exibição ou função com valor de tabela embutida quando essa coluna é definida por um dos seguintes métodos:
Quando SQL Server detectar tal coluna na cláusula OUTPUT, ocorrerá o erro 4186. Para obter mais informações, consulte MSSQLSERVER_4186. |
||||||||||
Cláusula OUTPUT INTO |
A tabela de destino da cláusula OUTPUT INTO não pode ter gatilhos habilitados. |
||||||||||
Opção precompute rank em nível de servidor |
Esta opção não tem suporte no SQL Server 2008. Modifique os aplicativos que usam esse recurso o mais rápido possível. |
||||||||||
dica de tabela READPAST |
Você não pode especificar a dica READPAST em Isolamento de Instantâneo. A dica READPAST é ignorada quando a opção de banco de dados READ_COMMITED_SNAPSHOT ou ALLOW_SNAPSHOT_ISOLATION é configurada como ON. No entanto, se você combinar a dica READPAST com READCOMMITTEDLOCK, o comportamento de READPAST é igual ao do bloqueio da dica READCOMMITTED. |
||||||||||
sp_helpuser |
Os nomes de colunas a seguir que são retornados no conjunto de resultados do procedimento armazenado sp_helpuser foram alterados.
|
||||||||||
Criptografia transparente de dados |
A TDE (criptografia de dados transparente) é realizada no nível de E/S: a estrutura da página é descriptograda na memória e só é criptograda quando a página é gravada no disco. Os arquivos de banco de dados e os arquivos de log são criptografados. Os aplicativos de terceiros que ignoram o mecanismo regular do SQL Server para acessar páginas (por exemplo, verificando os dados ou os arquivos de log diretamente), falharão quando um banco de dados usar TDE porque os dados estão criptografados nos arquivos. Esses aplicativos podem aproveitar a API Criptográfica do Windows para desenvolver uma solução para descriptografar os dados fora do SQL Server. |
XQuery
Recurso |
Descrição |
---|---|
Suporte à data/hora |
No SQL Server 2005, os tipos de dados xs:time, xs:date e xs:dateTime não têm suporte para fuso horário. Os dados de fuso horário são mapeados para o fuso horário de UTC. O SQL Server 2008 fornece comportamento de conformidade padrão, o que resulta nas seguintes alterações:
Modifique os aplicativos e as expressões XQuery para considerar os novos valores de tipo. |
Expressões XQuery e Xpath |
No SQL Server 2005, as etapas em uma expressão XQuery ou XPath que começam com dois-pontos (':') são permitidas. Por exemplo, a instrução a seguir contém um teste de nome (CTR02) dentro da expressão de caminho que começa com um dois pontos.
No SQL Server 2008 esse uso não é permitido porque não está de acordo com os padrões XML. Retorna o erro 9341. Remova o dois-pontos à esquerda ou especifique um prefixo para o teste de nome, por exemplo, (n$/CTR02) ou (n$/p1:CTR02). |
Connecting
Recurso |
Descrição |
---|---|
Estabelecendo conexão a partir do SQL Server Native Client usando SSL |
Na conexão com o SQL Server Native Client, os aplicativos que usam "SERVER=shortname; FORCE ENCRYPTION=true" com certificado cujos Assuntos especificam FQDNs (nomes de domínios totalmente qualificados) antes se conectavam devido à validação reduzida. O SQL Server 2008 R2 aprimora a segurança impondo assuntos de FQDN para certificados. Os aplicativos que dependem de validação reduzida devem executar uma das seguintes ações:
|
Voltar ao início
Alterações recentes no SQL Server 2005
Para obter uma lista das últimas alterações introduzidas no SQL Server 2005, consulte Alterações recentes em recursos do mecanismo de banco de dados no SQL Server 2005.
Consulte também
Referência
Recursos do Mecanismo de Banco de Dados preteridos no SQL Server 2012
Alterações no comportamento de recursos do Mecanismo de Banco de Dados no SQL Server 2012
Funcionalidade do Mecanismo de Banco de Dados descontinuada no SQL Server 2012
Nível de compatibilidade de ALTER DATABASE (Transact-SQL)
Outros recursos
Compatibilidade com versões anteriores do Mecanismo de Banco de Dados do SQL Server