CREATE PROCEDURE dbo.formaNo
(                                         
@FieldName char(50),@str char(50)

)
AS
declare @sqlstmt nvarchar(4000)

set @sqlstmt='select count(*) from Eval where '+@FieldName+'=''+@str+'''
  EXEC sp_executesql @sqlstmt
return
GO
其中表Eval是:
Eid cid uname score1 score2 score3 score4 score5 score6
1 2 admin eval是做什么的 合格
2 2 ldkf 合格
…………还有很多指标字段,我就不写了
执行存储过程:
execute formaNo score1,
但不管参数值怎么改变,其返回结果永远是0,我弄了好久好久都不很有知道哪出错了
解决办法
SQL code
CREATE PROCEDURE dbo.formaNo
(                                       
@FieldName char(50),@str char(50)
)
AS
declare @sqlstmt nvarchar(4000)
/*
set @sqlstmt='select count(*) from Eval where '+@FieldName+'=''+@str+'''
*/
set @sqlstmt='select count(*) from Eval where '+@FieldName+'='''+@str+''''
  EXEC sp_executesql @sqlstmt
return
GO

字符串中,两个''表示一个'

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。