CREATE TABLE [dbo].[review]
(
[id] [int] IDENTITY(1,1) NOT NULL,
[uID] [varchar](6) NOT NULL,
[pID] [int] NOT NULL,
[email] [nvarchar](255) NOT NULL,
[review] [nvarchar](3000) NULL,
[refURL] [nvarchar](2083) NOT NULL,
[refID] [nvarchar](100) NOT NULL,
[cDate] [datetime] NOT NULL,
CONSTRAINT [PK_review]
PRIMARY KEY CLUSTERED ([id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[review]
ADD CONSTRAINT [DF_review_uID] DEFAULT (LEFT(NEWID(), (6))) FOR [uID]
GO
ALTER TABLE [dbo].[review]
ADD CONSTRAINT [DF_review_cDate] DEFAULT (GETDATE()) FOR [cDate]
GO
I wrote this stored procedure:
ALTER PROCEDURE [dbo].[spReview]
@id INT = 0,
@uID VARCHAR(6),
@pID INT = 0,
@email NVARCHAR(255),
@review NVARCHAR(3000),
@refURL NVARCHAR(2083),
@refID NVARCHAR(100),
@cDate DATETME = NULL,
@OPERATION NVARCHAR(50) = ''
AS
IF @OPERATION = 'Insert'
BEGIN
DECLARE @inserted TABLE ([uID] VARCHAR(6));
INSERT INTO review ([pID], [email], [review], [refURL], [refID])
OUTPUT INSERTED.[uID] INTO @inserted
VALUES (@pID, @email, @review, @refURL, @refID)
SELECT *
FROM @inserted
END
ELSE IF @OPERATION = 'Delete'
BEGIN
DELETE FROM review
WHERE id = @id
END
ELSE IF @OPERATION = 'Update'
BEGIN
UPDATE review
SET pID = @pID,
email = @email,
review = @review,
refURL = @refURL,
refID = @refID
WHERE id = @id
END
uID : left(newid(),(6)) and cDate : getdate() set default value
DECLARE @return_value int
EXEC @return_value = [dbo].[spReview]
@id = N'29',
@OPERATION = N'Delete'
SELECT 'Return Value' = @return_value
GO
I get this error when I execute the delete query:
Procedure or function 'spReview' expects parameter '@uID', which was not supplied
I tried debugging, I can't figure out where I made a mistake. Where did I make a mistake?
ELSE IF @OPERATION = 'Delete'
BEGIN
DELETE FROM review
WHERE id = @id
END
Just waiting for '@id' parameter, it doesn't need '@uID'
uIDwhen you execute it. You didn't do that. I don't think the error could really be much clearer?? - ADyson