Solved

Modifying Stored Procedure

Posted on 2011-02-12
7
578 Views
Last Modified: 2012-06-27
I need to Modify the ADD_CUSTOMER procedure below so that it takes a fourth CUST_BALANCE IN argument, including modifying the INSERT statement so that it inserts the value passed in instead of the zero above.  The stored procedure is below.

Please provide assistance - I continue to get error messages

CREATE PROCEDURE ADD_CUSTOMER   -- Create a new customer
   @cus_id_arg NUMERIC,         -- This parameter is the new customer's ID.
   @first_name_arg VARCHAR(30), -- This parameter is the new customer’s first name.
   @last_name_arg VARCHAR(40)   -- This parameter is the new customer's last name.
AS -- This "AS" is required by the syntax of stored procedures.
BEGIN
  -- Insert the new customer with the parameters given, and a 0 balance.
  INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_FIRST,CUSTOMER_LAST,CUSTOMER_TOTAL)
  VALUES(@cus_id_arg,@first_name_arg,@last_name_arg,0);
END;
0
Comment
Question by:alpha100
7 Comments
 
LVL 23

Accepted Solution

by:
wdosanjos earned 250 total points
ID: 34881170
Give the following a try:

CREATE PROCEDURE ADD_CUSTOMER   -- Create a new customer
   @cus_id_arg NUMERIC,         -- This parameter is the new customer's ID.
   @first_name_arg VARCHAR(30), -- This parameter is the new customer’s first name.
   @last_name_arg VARCHAR(40),   -- This parameter is the new customer's last name.
   @cust_balance money
AS -- This "AS" is required by the syntax of stored procedures.
BEGIN
  -- Insert the new customer with the parameters given, and a 0 balance.
  INSERT INTO CUSTOMER (CUSTOMER_ID,CUSTOMER_FIRST,CUSTOMER_LAST,CUSTOMER_TOTAL)
  VALUES(@cus_id_arg,@first_name_arg,@last_name_arg,@cust_balance);
END;

Open in new window

0
 
LVL 9

Expert Comment

by:gdupadhyay
ID: 34881233
What is the data type of column: CUSTOMER_TOTAL in table:  CUSTOMER?

Please use same datatype as input parameter in stored procedure: ADD_CUSTOMER
Before writing stored procedure, please matched the datatype in table and accept as same data type. You can also type cast,  but it will make more complex.

If datatype is Money, you can use the SP posted by wdosanjos.

If Datatype is decimal: Use this stored procedure.

Or just verify what is exact datatype and use same.
CREATE PROCEDURE ADD_CUSTOMER   -- Create a new customer
   @cus_id_arg			NUMERIC,         -- This parameter is the new customer's ID.
   @first_name_arg		VARCHAR(30), -- This parameter is the new customer’s first name.
   @last_name_arg		VARCHAR(40),   -- This parameter is the new customer's last name.
   @CUST_BALANCE		decimal
   
AS -- This "AS" is required by the syntax of stored procedures.
BEGIN
  -- Insert the new customer with the parameters given, and a 0 balance.
  INSERT INTO CUSTOMER (CUSTOMER_ID, CUSTOMER_FIRST, CUSTOMER_LAST, CUSTOMER_TOTAL)
  VALUES(@cus_id_arg, @first_name_arg, @last_name_arg, @CUST_BALANCE);
END;

Open in new window

0
 
LVL 9

Expert Comment

by:xav056
ID: 34881234
if you are modifying sa stored proc make sure you replace the "CREATE" with "ALTER"
0
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 

Author Comment

by:alpha100
ID: 34881274
How do I add a row to the store procedure?
0
 
LVL 23

Expert Comment

by:wdosanjos
ID: 34881297
What type of row do you want to add?  Please elaborate.
0
 

Author Comment

by:alpha100
ID: 34881331
I have another table called the Item's Table with Item_ID, Item_description, Item_Price.  I need to create a stored procedure that will add additional item row?  I attempted to creat the procedure and received number error messages

Here is what I created:   When I execute I receive error message: Msg 102, Level 15, State 1, Procedure ADD_ITEM, Line 4 Incorrect syntax near 'NUMERIC'.  

What am  I doing wrong?   Thanks


CREATE PROCEDURE ADD_ITEM  -- Create a new item      
   @item_id_arg NUMERIC,         -- This parameter is the new item ID.
   @item_description_arg VARCHAR(30), -- This parameter is the item description.
   @item_price NUMERIC  -- This parameter is the item price.
   
   AS -- This "AS" is required by the syntax of stored procedures.
BEGIN
  -- Insert the new customer with the parameters given, and a 0 balance.
  INSERT INTO item (item_ID,item_description, item_price)
  VALUES(@item_id_arg,@item_description_arg,@item_price_arg,0);
END;
0
 
LVL 23

Expert Comment

by:wdosanjos
ID: 34881346
Change '@item_price NUMERIC' to '@item_price_arg NUMERIC' and remove the 0 on the INSERT statement. These changes should fix it.

If you have related questions, please open another Question.

Thanks.
0

Featured Post

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Help Required 3 97
convert null in sql server 12 34
always on switch back after failover 2 35
SQL Server - Getting the most recent engagement for each contact 9 24
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
This article shows gives you an overview on SQL Server 2016 row level security. You will also get to know the usages of row-level-security and how it works
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question