none
problema ao executar PROCEDURE com parametro RRS feed

  • 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.



    domingo, 12 de fevereiro de 2012 20:30

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

    segunda-feira, 13 de fevereiro de 2012 10:15

Todas as Respostas

  • Ninguém até agora? help 
    domingo, 12 de fevereiro de 2012 22:20
  • 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

    segunda-feira, 13 de fevereiro de 2012 10:15