创建存储过程导致错误

时间:2013-01-03 15:21:40

标签: sql-server sql-server-2008-r2

您好我正在尝试创建一个存储过程,但每次我尝试保存它时都会收到错误

Msg 102, Level 15, State 1, Procedure forum_Insert_Post, Line 3
Incorrect syntax near '@description'.
Msg 137, Level 15, State 2, Procedure forum_Insert_Post, Line 9
Must declare the scalar variable "@title"

这是我的代码:

CREATE PROCEDURE forum_Insert_Post
     @title nvarchar
     @description nvarchar
     @subcategoryId int
     @date dateTime
     @usernameId uniqueidentifier
AS
    INSERT INTO forum_posts (PostTitle , PostContent , PostDate , UserId , SubcategoryId)
    VALUES (@title , @description , @date , @usernameId , @subcategoryId)

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

参数后面需要逗号:

CREATE PROCEDURE forum_Insert_Post
 @title nvarchar,
 @description nvarchar,
 @subcategoryId int,
 @date dateTime,
 @usernameId uniqueidentifier
AS
INSERT INTO forum_posts (PostTitle , PostContent , 
 PostDate , UserId , SubcategoryId)
VALUES (@title , @description , @date , @usernameId , @subcategoryId)

答案 1 :(得分:4)

只需添加一些逗号,并为nvarchar提供合适的大小,否则会截断为1个char:)

CREATE PROCEDURE forum_Insert_Post
     @title nvarchar(20),
     @description nvarchar(20),
     @subcategoryId int,
     @date dateTime,
     @usernameId uniqueidentifier
AS
    INSERT INTO forum_posts (PostTitle , PostContent , PostDate , UserId , SubcategoryId)
    VALUES (@title , @description , @date , @usernameId , @subcategoryId)

NVARCHAR截断here

的SQLFiddle