looking to get this saved procedure to operate.

ALTER PROCEDURE [team1].[add_testimonial]
-- Add the parameters for the stored procedure here
@currentTestimonialDate char(10),@currentTestimonialContent varchar(512),@currentTestimonialOriginator varchar(20)
AS
BEGIN
DECLARE
@keyValue int

SET NOCOUNT ON;
--Get the Highest Key Value
SELECT @keyValue=max(TestimonialKey)
FROM Testimonial
--Update the Key by 1
SET @keyValue=@keyValue+1
--Store into table
INSERT INTO Testimonial VALUES (@keyValue, @currentTestimonialDate, @currentTestimonialContent, @currentTestimonialOriginator)

END

yet it simply returns

Running [team1].[add_testimonial] ( @currentTestimonialDate = 11/11/10, @currentTestimonialContent = this is a test, @currentTestimonialOriginator = theman ).

No rows affected.
(0 row(s) returned)
@RETURN_VALUE = 0
Finished running [team1].[add_testimonial].

and absolutely nothing is put into the database, what may be the problem?

There might have problems in 2 place:

a. There's no data within the table so, max(TestimonialKey) returns null, below may be the appropriate method to handle it.

--Get the Highest Key Value
SELECT @keyValue= ISNULL(MAX(TestimonialKey), 0)
FROM Testimonial
--Update the Key by 1
SET @keyValue=@keyValue+1

b. Look at your data kind of the column currentTestimonialDate whether it's char or DateTime type, if the area is datetime enter in the table then convert @currentTestimonialDate to DateTime before placing towards the table.

Also, check quantity of posts that aren't null permitted and you are passing data for them.

If you are not passing data for those posts then try by indicating posts title as below:

--Store into table
INSERT INTO Testimonial(keyValue, currentTestimonialDate, 
                       currentTestimonialContent, currentTestimonialOriginator) 
              VALUES (@keyValue, @currentTestimonialDate, 
                     @currentTestimonialContent, @currentTestimonialOriginator)

EDIT:

After you have the comment from marc_s:

Make keyValue as INT IDENTITY, If multiple user refer to it as at the same time that will not be problem, DBMS will handle it, therefore the ultimate query in procedure may be as below:

ALTER PROCEDURE [team1].[add_testimonial]
-- Add the parameters for the stored procedure here
@currentTestimonialDate char(10),
@currentTestimonialContent  varchar(512),@currentTestimonialOriginator varchar(20)
AS
BEGIN

  SET NOCOUNT ON;
  --Store into table
  INSERT INTO Testimonial VALUES (@currentTestimonialDate, 
        @currentTestimonialContent, @currentTestimonialOriginator)

END

Two issues will be able to place:

SELECT @keyValue=max(TestimonialKey)

ought to be

SELECT @keyValue=ISNULL(max(TestimonialKey), 0)

To take into account the situation when you will find no records within the database

Second, In my opinion by using NOCOUNT ON, you won't return the count of placed rows towards the caller. So, before your INSERT statement, add

SET NOCOUNT OFF