首页 新闻 会员 周边 捐助

帮我看看,sql语拼接

0
悬赏园豆:20 [已解决问题] 解决于 2010-07-01 13:17

ALTER PROCEDURE  [dbo].[P_OA_JudgeFromValueWhere]
@FromNo nvarchar(500),
@strSql nvarchar(500),
@ErrorCount int OUTPUT
AS
BEGIN  
 EXEC ('SELECT '+@ErrorCount+'=COUNT(*) FROM V_OA_FromValueInfo WHERE FromNo='+@FromNo+' and '+@strSql);
 IF @@ERROR > 0
   BEGIN
    SET @ErrorCount = -1;
    RETURN
   END 
END

 

那里有问题,编译能过,执行报错 : '=' 附近有语法错误。

问题补充: 哎。直接返回值了...
xmao-xmao的主页 xmao-xmao | 初学一级 | 园豆:69
提问于:2010-07-01 09:37
< >
分享
最佳答案
0

你的语法不对,不能这么输出参数。得用这个

sp_executesql [@stmt =] stmt
[
    
{, [@params =] N'@parameter_name  data_type [,...n]' }
    {, [@param1 =] 'value1' [,...n] }
]

 补充示例:

DECLARE @Count INT
EXECUTE SP_EXECUTESQL N'SELECT @TempCount = COUNT(*) FROM SPT_MONITOR',
 N'@TempCount INT OUTPUT',
 @TempCount =@Count OUTPUT
PRINT @Count

收获园豆:10
觉知的凡夫 | 菜鸟二级 |园豆:468 | 2010-07-01 10:04
没看懂。。。
xmao-xmao | 园豆:69 (初学一级) | 2010-07-01 10:09
已经给你提供示例
觉知的凡夫 | 园豆:468 (菜鸟二级) | 2010-07-01 10:31
@传说哥:编译没问题,执行报错
xmao-xmao | 园豆:69 (初学一级) | 2010-07-01 10:44
选择MASTER 数据 执行SQL语句,这个SPT_MONITOR 标是MASTER数据库中的
觉知的凡夫 | 园豆:468 (菜鸟二级) | 2010-07-01 10:47
其他回答(2)
0
EXEC ('SELECT '+cast(@ErrorCount as nvarchar(10))
+'=COUNT(*) FROM V_OA_FromValueInfo WHERE FromNo='
+@FromNo+' and '+@strSql);

 

注意@ErrorCount是整型

 

收获园豆:5
邀月 | 园豆:25475 (高人七级) | 2010-07-01 09:51
'cast' 附近有语法错误。 编译没过
支持(0) 反对(0) xmao-xmao | 园豆:69 (初学一级) | 2010-07-01 10:03
@- _ -?:sorry!我看错了,你的语句没有问题,可以编译通过!
支持(0) 反对(0) 邀月 | 园豆:25475 (高人七级) | 2010-07-01 10:21
0

create PROCEDURE  [dbo].[P_OA_JudgeFromValueWhere]
@FromNo nvarchar(500),
@strSql nvarchar(500),
@ErrorCount int OUTPUT
AS
BEGIN
 declare @sqlt nvarchar(1000)
 set @sqlt= 'select @ErrorCount+COUNT(*) FROM V_OA_FromValueInfo WHERE FromNo='+@FromNo+' and '+@strSql;
 exec sp_executesql @sqlt ,@params=N'@ErrorCount as int ',@ErrorCount=@ErrorCount
 IF @@ERROR > 0
   BEGIN
    SET @ErrorCount = -1;
    RETURN
   END
END

收获园豆:5
leon382 | 园豆:226 (菜鸟二级) | 2010-07-01 11:11
这个不管有没有值返回都是 null
支持(0) 反对(0) xmao-xmao | 园豆:69 (初学一级) | 2010-07-01 13:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册