UPDATE NO SQL

VPVJUNIOR 18/01/2005 17:31:24
#61638
Dessa vez o problema e no UPDATE/SQL.

executo uma STORE PROCEDURE no meu projeto,na seguinte sintaxe:

CREATEP ROCEDURE SP_ALT
@ID_FICHA CHAR(12),
@ID_UNIDADE VARCHAR(13),
@ID_FUNCAO CHAR(2),
@ID_SUBFUNCAO CHAR(3),
@CRED_ESPEICAL BIT,
@LEI CHAR(3),
@DATA DATETIME
AS
BEGIN TRAN
UPDATE FICHAS SET ID_UNIDADE=@ID_UNIDADE, ID_FUNCAO=
@ID_FUNCAO,ID_SUBFUNCAO=@ID_SUBFUNCAO WHERE
ID_FICHA=@ID_FICHA

IF @CRED_ESPEICAL=1
BEGIN
UPDATE CRED_ESPECIAIS SET LEI=@ID_LEI,DATA=@DATA
WHERE ID_FICHA=@ID_FICHA
END
COMMIT TRAN

e ela me retorna o seguinte erro:

Too many arguments were supplied for procedure SP_ALT.

onde estaria o erro, se esses mesmos parametros é usado no INSERT INTO

GRATO
USUARIO.EXCLUIDOS 18/01/2005 17:43:42
#61640
O erro está aki velho:

UPDATE CRED_ESPECIAIS SET LEI=@[txt-color=#ff0000]ID_LEI[/txt-color],DATA=@DATA
WHERE ID_FICHA=@ID_FICHA

E você criou lá encima como:

@LEI CHAR(3),

Sacou?
VPVJUNIOR 18/01/2005 17:51:21
#61644
Perdão amigo, eu escrevi a sintaxe errado, o que tem na store procedure é isso mesmo

UPDATE CRED_ESPECIAIS SET LEI=@[txt-color=#ff0000]LEI[/txt-color],DATA=@DATA
WHERE ID_FICHA=@ID_FICHA

e o erro continua, Valeu.
USUARIO.EXCLUIDOS 19/01/2005 09:48:57
#61747
Resposta escolhida
Cara..eu tenho algo sobre este erro, num ambiente diferente..de replicação...mas acredito que talvez os procedimentos podem ser aplicados. é um problema com Column ID das colunas.

Segundo o documento faça o seguinte :

1 - COpie todos os dados da sua tabela que estpa dando pau pra uma outra qualquer chamada tabela2 por exemplo
SELECT * INTO Table2
FROM TabelaComPau

2 - Drope a TabelaComPau e drope os objetos dependentes dela(triggres, procs etc...não se esqueça de fazer um script desses dependentes)

3 - USe a sp_rename pra renomar a TabelaComPau pro nome original dela

4 - Recrie todos os objetos dependentes dela (triggers, Sp...etc)

Segue o link original

http://support.microsoft.com/kb/241658/EN-US/

VPVJUNIOR 19/01/2005 16:05:29
#61824
O problema continua. De qualquer forma obrigado pela dica LAERTE.
USUARIO.EXCLUIDOS 19/01/2005 16:17:05
#61827
Cara..faz o seguinte...identifique quais dos updates dá o erro....com select "passei por aqui" dentro da proc.
Depois de identificado qual update está dando problema, vá coluna por coluna e identifique em qual coluna ele dá o pau...

Fala pra gente o resultado
VPVJUNIOR 19/01/2005 17:08:01
#61848
valeu LAERTE a sua idéia despertou em mim uma outra idéia que foi o seguinte:

coloquei um msgbox dos parà¢metros que é passado p/store proc. do update, e percebi que um dos parà¢metros era o valor que estava sendo passado com a ",". O total de parà¢metro de minha proc. é 12, e por ele estar passando a "," junto aumentava para 13. Apliquei um CDBL() na coluna do valor e resolveu. Obrigado pela dica. Vou encerra o tópico, VALEU!!!!!
Tópico encerrado , respostas não são mais permitidas