Inquiridor
Cannot create a row of size 8096 which is greater than the allowable maximum of 8060

Pergunta
-
Pessoal, tenho a seguinte tabela:
Este insert da o erro do Título:
insert tab_parametro_sistema
(TAB_PARAMETRO_SISTEMA_ID,
desc_parametro_sistema,
parametro,
FUNCAO_ID,
msg_parametro,
default_parametro,
desc_parametro,
desc_parametro_adic)
select 2630, 'SP Calculo icms Rodo', 'SP_040_CALC_ICMS_RODOV_NOVO127', NULL, 'SP', null, 'Define o nome da SP de calculo icms ecargoASP', nullNão consigo entender o porque esta excedendo o limite de linha.... Podem me ajudar?
Clayton Dias
Todas as Respostas
-
Boa tarde Clayton,
Tentei simular o erro aqui nomeu ambiente mais não consegui, inseriru o registro com sucesso, pessoalmente nunca vi este erro.
Mas tente utilizar o Hint ROBUST SCAN para verificar se ocorre "algo de diferente".
insert tab_parametro_sistema (TAB_PARAMETRO_SISTEMA_ID, desc_parametro_sistema, parametro, FUNCAO_ID, msg_parametro, default_parametro, desc_parametro, desc_parametro_adic) select 2630, 'SP Calculo icms Rodo', 'SP_040_CALC_ICMS_RODOV_NOVO127', NULL, 'SP', null, 'Define o nome da SP de calculo icms ecargoASP', null OPTION(ROBUST PLAN)
Adriano -
-
-
Tente isto:
EXEC sp_tableoption 'TABELA', 'large value types out of row', 1;
Fonte:http://msdn.microsoft.com/pt-br/library/ms173530.aspx
- Editado Antero Marques quinta-feira, 19 de abril de 2012 17:33
-
-
Marcelo,
Microsoft SQL Server 2005 - 9.00.1399.06 (X64) Oct 14 2005 00:35:21 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
O modo de compatibilidade é 80!
Clayton Dias
-
-
Clayton
Existem mais campos em sua tabela fora os que vc postou na imagem?
o artigo abaixo poderá te ajudar....
http://blogs.msdn.com/b/msdnts/archive/2006/12/01/row-size-limitation-in-sql-2000-and-2005.aspx
Fiz um teste no SQL 2005 e o erro não ocorreu, mas o meu SQL 2005 estava com o SP4 o seu esta muito desatualizado... é RTM ainda...
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba -
-
acredito que a versão RTM pode tr influencia sim...
existe a possibilidade de vc fazer um ambiente de teste com o mesmo buid da produção e restaurar seu backup? se ocorrer o erro, aplica o SP4 no ambiente teste e testa novamente o seu insert
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba -
Marcelo,
Boa noite, não funcionou. Agora meu SQL Server não é mais RTM: Microsoft SQL Server 2005 - 9.00.4035.00 (X64) Nov 24 2008 16:17:31 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
Fiz um checkdb, encontrei erros, reparei. Também fiz um DBCC UPDATEUSAGE.
Não funcionou, a solução de excluir e incluir novamente a tabela funciona.
Grato!
Clayton
-
Pessoal,
Estou com o mesmo problema em outra tabela, neste caso é uma tabela muito grande, e achei que realmente tinha ultrapassado, mas, fazendo o calculo sugerido no BOL, não chega 8060 bytes.
Segue o calculo para verem se não cometi nenhum erro:
/* 56 - int 108 - numeric 61 - datetime 175 - char 167 - varchar ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/81fd5ec9-ce0f-4c2c-8ba0-6c483cea6c75.htm */ declare @Num_Cols int, @Fixed_Data_Size int, @Num_Variable_Cols int, @Max_Var_Size int, @Null_Bitmap int, @Variable_Data_Size int, @Row_Size int select @Num_Cols = count(object_id) from sys.columns where object_id = object_id('docto_transporte') select @Fixed_Data_Size = sum(max_length) from sys.columns where object_id = object_id('docto_transporte') and system_type_id in(56,108, 61, 175) select @Num_Variable_Cols = count(max_length) from sys.columns where object_id = object_id('docto_transporte') and system_type_id = 167 select @Max_Var_Size = sum(max_length) from sys.columns where object_id = object_id('docto_transporte') and system_type_id = 167 select @Null_Bitmap = CONVERT(int, 2 + ((@Num_Cols + 7) / 8)) select @Variable_Data_Size = 2 + (@Num_Variable_Cols * 2) + @Max_Var_Size select @Row_Size = @Fixed_Data_Size + @Variable_Data_Size + @Null_Bitmap + 4 select @Row_Size
O resultado foi:
5949 bytesP.S. Não possuo tipo diferente destes na tabela:
56 - int
108 - numeric
61 - datetime
175 - char
167 - varchar- Editado Clayton Dias terça-feira, 24 de abril de 2012 17:29 Erro
-
-
Deve ter sido por isso que quando você disse que apagou a tabela e a recriou funcionou.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.