首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

快下班了问一个存储过程,该如何解决

2012-01-18 
快下班了问一个存储过程ALTER PROCEDURE dbo.fileInfo_storedProcess@CMD char(10),@loginname nvarchar(5

快下班了问一个存储过程
ALTER PROCEDURE dbo.fileInfo_storedProcess
@CMD char(10),
@loginname nvarchar(50)='',
@articleno nvarchar(50)='',
@pagecount int=0,
@figcount int=0,
@tablecount int=0,
@equcount int=0,
@note ntext='',
@newfile bit='0',
@onlineearly bit='0',
@revise bit='0',
@vouchar bit='0',
@datetime datetime='1990-01-01',
@sourcepath nvarchar(50)='',
@purposepath nvarchar(50)=''

AS

 if(@CMD='SELECT')
 
  BEGIN
DECLARE @sqlwhere varchar(4000)
if(@loginname<>'')

set @sqlwhere= @sqlwhere + "where LoginName=@loginname"



if(@articleno<>'')

set @sqlwhere= @sqlwhere+" ArticleNo=@articleno"





END
else if(@CMD='INSERT')
BEGIN
INSERT INTO FileInfor(LoginName,ArticleNo,PageCount,TableCount,EquCount,Note,Newfile,OnLineearly,Revise,Vouchar,DateTime,SourePath,PurposePath) values(@loginname,@articleno,@pagecount,@tablecount,@equcount,@note,@newfile,@onlineearly,@revise,@vouchar,@datetime,@sourcepath,@purposepath)
 
END



RETURN 
报下面的错误
invalid column name "where LoginName=@loginname"
invalid column name "ArticleNo=@articleno"
高手们看看阿。


[解决办法]

SQL code
DECLARE @sqlwhere varchar(4000) if(@loginname < > ' ') set @sqlwhere= @sqlwhere + "where LoginName=@loginname" if(@articleno < > ' ') set @sqlwhere= @sqlwhere+" ArticleNo=@articleno" ------------------------将这两处修改为:DECLARE @sqlwhere varchar(4000) if(@loginname < > ' ') set @sqlwhere= @sqlwhere + 'where LoginName=' + @loginname if(@articleno < > ' ') set @sqlwhere= @sqlwhere+' ArticleNo=' + @articleno这样试试 

热点排行
Bad Request.