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,我弄了好久好久都不很有知道哪出错了
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小时内删除。
发表评论