Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

erro acontece apenas quando execute a proc

Recommended Posts

pessoal fiz uma proc que atualiza alguns dados.

 

acontece que tenho o seguinte update dentro da proc

 

SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOALTER	   Procedure dbo.nc_trata_tb_cliente(@cod_cliente BigInt)As	Set Nocount on	Set Transaction Isolation Level Read Uncommitted	Begin		Update			a		Set			nom_cliente						= Convert(Varchar(80), nom_cliente),			num_cnpj_cpf					= Convert(Numeric(20), dbo.TrataCgcCpf(dbo.trata_branco(num_cnpj_cpf))),			cod_pais							= dbo.nc_RetornaCodPais(cod_pais),			dat_nascimento					= Convert(Varchar(10), dat_nascimento, 103),			cod_estado_civil 				= dbo.nc_RetornaCodigoCivil(cod_estado_civil),			--cod_profissao 					= Case When cod_profissao = 93002 Or cod_profissao = 93003 Or cod_profissao = 93005 Then 0 Else IsNull(cod_profissao,'999') End,			cod_sexo							= Case When cod_sexo = 2 Then '0' Else '1' End,			des_endereco					= dbo.Trata_Branco(des_endereco),			cod_cep							= dbo.Geral_CompletaZero(cod_cep,8),			num_numero_end					= Case When num_numero_end Is Null Then '.' Else num_numero_end End,			num_ddd							= Case When num_ddd = 0 Or num_ddd Is Null Then '' Else Left(num_ddd,3) End,			num_fone							= Case When Num_fone = 0 Or num_fone Is Null Then '' Else num_fone End,			des_email						= Upper(des_email),			num_ddd_comercial 			= Case When num_ddd_comercial = 0 Or num_ddd_comercial Is Null Then '' Else Left(num_ddd_comercial,3) End,			num_fone_comercial			= Case When num_fone_comercial = 0 Or num_fone_comercial Is Null Then '' Else num_fone_comercial End,			--des_pais							= (Select des_sigla_pais From nc_tb_pais (Nolock) Where cod_pais = a.cod_pais),			des_complemento				= Case When des_complemento = '' Then '.' End,			num_rg							= dbo.Trata_Branco(num_rg),			dat_expedicao					= Convert(Varchar(10), dat_expedicao, 103),			des_bairro						= dbo.Trata_Branco(Left(des_bairro,30)),			des_complemento				= Left(IsNull(dbo.Trata_Branco(des_complemento),'.'),40),			--des_complemento				= Case When des_complemento = '' Or des_complemento Is Null Then '.' Else Left(des_complemento,40) End,			cod_orgao_expedidor 			= Case When cod_orgao_expedidor Is Null Then 'SSP' Else (Select cod_sigla_orgao_expedidor From nc_tb_orgao_expedidor (Nolock) Where cod_orgao_expedidor = a.cod_orgao_expedidor) End			--des_documento					= dbo.Trata_Branco(des_documento)		From			nc_tb_cliente a 		Where			cod_cliente = @cod_cliente	EndGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO
quando executo - a passando o paramentro cliente me dá esse erro:

Server: Msg 264, Level 16, State 1, Procedure nc_trata_tb_cliente, Line 7

Column name 'des_complemento' appears more than once in the result column list.

 

acontece que seu eu executar o mesmo update fora da proc, no query analyser, funciona normalmente.

 

detalhe: quando pego o código do cliente que passo da proc e fasço um select me traz apenas uma linha do banco.

 

pq do erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o campo des_complemento esta fazendo update duas vezes, testa deixando uma só vez pra ver se resolve

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.