Applies ToSQL Server 2008 SQL Server 2008 R2

A Microsoft distribui as correções do Microsoft SQL Server 2008 e Microsoft SQL Server 2008 R2 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções de segurança que foram incluídas na versão anterior do SQL Server 2008 ou SQL Server 2008 R2.

Sintomas

Considere o seguinte cenário:

  • Você cria um procedimento armazenado no Microsoft SQL Server 2008 ou no Microsoft SQL Server 2008 R2.

  • O procedimento armazenado usa uma variável de objeto binário grande (BLOB).

  • A variável BLOB é usada em uma função de cadeia de caracteres.

  • Execute o procedimento armazenado.

Nesse cenário, o plano de consulta para o procedimento armazenado não será armazenado.

Resolução

Informações sobre a atualização cumulativa

SQL Server 2008 Service Pack 1

A correção para esse problema foi lançada em 10 de atualização cumulativa para SQL Server 2008 Service Pack 1. Para obter mais informações sobre esse pacote cumulativo de atualização, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

2279604 Pacote de atualizações cumulativas 10 para o SQL Server 2008 Service Pack 1Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server de 2008 lançamento de correção. A Microsoft recomenda que você considere aplicar a versão mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

970365 O SQL Server 2008 compilações disponibilizadas após o lançamento do SQL Server 2008 Service Pack 1 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs específicos do SQL Server. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por padrão, todos os hotfixes fornecidos em um service pack do SQL Server estão incluídos no próximo service pack do SQL Server.

SQL Server 2008 Service Pack 2

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre esse pacote cumulativo de atualização, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

2289254 Atualização cumulativa 1 para SQL Server 2008 Service Pack 2Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server de 2008 lançamento de correção. Recomendamos que você considere aplicar o lançamento mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

2402659 O SQL Server 2008 compilações disponibilizadas após o lançamento do SQL Server 2008 Service Pack 2

SQL Server 2008 R2

A correção para esse problema foi lançado pela primeira vez na atualização cumulativa 4. Para obter mais informações sobre como obter esse pacote de atualização cumulativa para SQL Server 2008 R2, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

2345451 Pacote de atualização cumulativa 4 para o SQL Server 2008 R2 Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 R2 anteriores corrigir lançamento. Recomendamos que você considere aplicar o lançamento mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:

981356 O SQL Server 2008 R2 compilações lançadas após o lançamento do SQL Server 2008 R2

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Informações adicionais

Para reproduzir esse problema, execute estas etapas:

  1. Execute o seguinte código criar duas de procedimentos armazenados ("p_test1" e "p_test2"). "P_test1" usa uma variável BLOB e "p_test2" usa uma variável nvarchar(100).use tempdbgoif OBJECT_ID('p_test1') is not null drop proc p_test1if OBJECT_ID('p_test2') is not null drop proc p_test2gocreate proc p_test1@s nvarchar(max)asbeginselect * from sys.objects where name = UPPER(@s)endgocreate proc p_test2@s nvarchar(100)asbeginselect * from sys.objects where name = UPPER(@s)endgo

  2. Execute o seguinte código para limpar o cache de procedimento e executar os dois procedimentos armazenados:dbcc freeproccachegoexec p_test1 N'abc'exec p_test2 N'abc'go

  3. Execute o seguinte código para verificar se o plano armazenado em cache: select object_name(CONVERT(int, a.value)), cp.*from sys.dm_exec_cached_plans cpcross apply sys.dm_exec_plan_attributes(cp.plan_handle) awhere cp.objtype = 'Proc'and a.attribute = 'objectid'

Observação: Se houver muitas execuções concorrentes desse tipo de procedimento armazenado em uma instância do Microsoft SQL Server 2008 R2 ou em uma de Microsoft SQL Server 2008, você pode enfrentar bloqueio causado por bloqueios de compilação na instância. Para obter mais informações sobre a descrição do SQL Server de bloqueio causados por bloqueios de compilação, consulte o seguinte artigo da Base de Conhecimento Microsoft:

263889 Descrição do SQL Server de bloqueio causados por bloqueios de compilação

Referências

Para obter mais informações sobre as funções de sequência de caracteres (Transact-SQL), visite o seguinte site da Microsoft:

Funções de sequência de caracteres (Transact-SQL)Para obter mais informações sobre o modelo de serviços incrementais para SQL Server, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

935897 Um modelo de serviços incrementais está disponível da equipe do SQL Server para fornecer hotfixes para problemas relatadosPara obter mais informações sobre o esquema para nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

822499Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL ServerPara obter mais informações sobre a terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:

824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.