日期:2014-05-19  浏览次数:20431 次

数据库的存储过程的问题
我的存储过程是这样写的:
create   procedure   Pr_AddFile
(
@FileID nvarchar(50),
@Desn      nvarchar(500),
@Url      nvarchar(500),
@IsDir int,
@ParentID nvarchar(50)
)
as
insert   into   webfile
(fileid,desn,url,isdel,parentid,creatdate)
values
(@FileID,@Desn,@Url,@IsDir,@ParentID,GetDate())

报错:
消息   102,级别   15,状态   1,过程   Pr_AddFile,第   6   行
'  '   附近有语法错误。
消息   137,级别   15,状态   2,过程   Pr_AddFile,第   15   行
必须声明标量变量   "@Desn "。

这是怎么回子事啊,还望高手赐教了!

------解决方案--------------------
create procedure Pr_AddFile
(
@FileIDnvarchar(50),
@Desn   nvarchar(500),
@Url   nvarchar(500),
@IsDirint, 这个位置
@ParentIDnvarchar(50)
)
------解决方案--------------------
注意理解意思,数据类型没分开
create procedure Pr_AddFile
(
@FileID nvarchar(50),
@Desn nvarchar(500),
@Url nvarchar(500),
@IsDir int,
@ParentID nvarchar(50)
)
as
insert into webfile
(fileid,desn,url,isdel,parentid,creatdate)
values
(@FileID,@Desn,@Url,@IsDir,@ParentID,GetDate())

------解决方案--------------------
1 变量名后边空格之后加上变量的类型,每个都得这样写
2 声明部分的变量名应该和使用时候的名称一致
------解决方案--------------------
@IsDirint 定义类型 @IsDirint varchar(100),
------解决方案--------------------
大哥 你疯了吧 空格呢??
create procedure Pr_AddFile
(
@FileID nvarchar(50),
@Desn nvarchar(500),
@Url nvarchar(500),
@IsDir int,
@ParentID nvarchar(50)
)
as
insert into webfile
(fileid,desn,url,isdel,parentid,creatdate)
values
(@FileID,@Desn,@Url,@IsDir,@ParentID,GetDate())
------解决方案--------------------
create procedure Pr_AddFile
(
@FileID nvarchar(50),
@Desn nvarchar(500),--@Desn与values中不一致
@Url nvarchar(500),--@Url与values中不一致
@IsDirint nvarchar(500),--没有声明类型
@ParentID nvarchar(50)
)
as
insert into webfile
(fileid,desn,url,isdel,parentid,creatdate)
values
(@FileID,@Desn,@Url,@IsDirint,@ParentID,GetDate())