Usuário com melhor resposta
problema ao executar PROCEDURE com parametro

Pergunta
-
Olá.
Quando tento inserir dados passando os parametros, dá erro.
Tenho o seguinte procedure
CREATE PROCEDURE SP_CADASTRO_LIVRO AS BEGIN -- DECLARE @TITULO VARCHAR(100) DECLARE @ISBN INT DECLARE @NOME_AUTOR VARCHAR(100) DECLARE @NOME_EDITORA VARCHAR(100) DECLARE @NOME_CATEGORIA VARCHAR(100) DECLARE @QUANT INT BEGIN TRAN -- BEGIN TRY -- INSERT INTO LIVRO (TITULO, ISBN) VALUES (@TITULO,@ISBN) INSERT INTO AUTOR (NOME) VALUES (@NOME_AUTOR) INSERT INTO EDITORA (NOME) VALUES (@NOME_EDITORA) INSERT INTO CATEGORIA (NOME) VALUES (@NOME_CATEGORIA) INSERT INTO ESTOQUE (QUANT, ISBN_ID) VALUES (@QUANT, @ISBN) END TRY BEGIN CATCH -- PRINT 'NAO FOI POSSIVEL INSERIR DADOS' ROLLBACK END CATCH END
EXEC SP_CADASTRO_LIVRO 'QUARUP', 8899, 'ANTONIO CALLADO', 'ATICA', 'ROMANCE', 2
Msg 8146, Level 16, State 2, Procedure SP_CADASTRO_LIVRO, Line 0
O procedimento SP_CADASTRO_LIVRO não tem parâmetros, e foram fornecidos argumentos.
- Editado Daniel O. Farias domingo, 12 de fevereiro de 2012 22:31 s
Respostas
-
Olá Daniel,
Os parâmetros devem ser declarados antes da palavra chave AS , sem a palavra chave DECLARE.
CREATE PROCEDURE SP_CADASTRO_LIVRO ( @TITULO VARCHAR(100) , @ISBN INT , @NOME_AUTOR VARCHAR(100) , @NOME_EDITORA VARCHAR(100) , @NOME_CATEGORIA VARCHAR(100) , @QUANT INT ) AS BEGIN -- BEGIN TRAN -- BEGIN TRY -- INSERT INTO LIVRO (TITULO, ISBN) VALUES (@TITULO,@ISBN) INSERT INTO AUTOR (NOME) VALUES (@NOME_AUTOR) INSERT INTO EDITORA (NOME) VALUES (@NOME_EDITORA) INSERT INTO CATEGORIA (NOME) VALUES (@NOME_CATEGORIA) INSERT INTO ESTOQUE (QUANT, ISBN_ID) VALUES (@QUANT, @ISBN) END TRY BEGIN CATCH -- PRINT 'NAO FOI POSSIVEL INSERIR DADOS' ROLLBACK END CATCH END
Não esqueça de "comitar" sua transação caso ocorra tudo bem com os inserts.David Silva | MCITP| MCTS | MCP | ITILF | Blog: http://tilive.wordpress.com
- Sugerido como Resposta Paulo K Katayama Jr segunda-feira, 13 de fevereiro de 2012 13:46
- Marcado como Resposta Fabrizzio CaputoModerator quarta-feira, 15 de fevereiro de 2012 21:10
Todas as Respostas
-
-
Olá Daniel,
Os parâmetros devem ser declarados antes da palavra chave AS , sem a palavra chave DECLARE.
CREATE PROCEDURE SP_CADASTRO_LIVRO ( @TITULO VARCHAR(100) , @ISBN INT , @NOME_AUTOR VARCHAR(100) , @NOME_EDITORA VARCHAR(100) , @NOME_CATEGORIA VARCHAR(100) , @QUANT INT ) AS BEGIN -- BEGIN TRAN -- BEGIN TRY -- INSERT INTO LIVRO (TITULO, ISBN) VALUES (@TITULO,@ISBN) INSERT INTO AUTOR (NOME) VALUES (@NOME_AUTOR) INSERT INTO EDITORA (NOME) VALUES (@NOME_EDITORA) INSERT INTO CATEGORIA (NOME) VALUES (@NOME_CATEGORIA) INSERT INTO ESTOQUE (QUANT, ISBN_ID) VALUES (@QUANT, @ISBN) END TRY BEGIN CATCH -- PRINT 'NAO FOI POSSIVEL INSERIR DADOS' ROLLBACK END CATCH END
Não esqueça de "comitar" sua transação caso ocorra tudo bem com os inserts.David Silva | MCITP| MCTS | MCP | ITILF | Blog: http://tilive.wordpress.com
- Sugerido como Resposta Paulo K Katayama Jr segunda-feira, 13 de fevereiro de 2012 13:46
- Marcado como Resposta Fabrizzio CaputoModerator quarta-feira, 15 de fevereiro de 2012 21:10