帮我看看,sql语拼接

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

 

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

慕村9548890
浏览 579回答 6
6回答

慕容708150

你的语法不对,不能这么输出参数。得用这个 sp_executesql [@stmt =] stmt[    {, [@params =] N'@parameter_name  data_type [,...n]' }    {, [@param1 =] 'value1' [,...n] }]  补充示例: DECLARE @Count INTEXECUTE SP_EXECUTESQL N'SELECT @TempCount = COUNT(*) FROM SPT_MONITOR', N'@TempCount INT OUTPUT', @TempCount =@Count OUTPUT PRINT @Count

缥缈止盈

'cast' 附近有语法错误。 编译没过

守着星空守着你

@- _ -?:sorry!我看错了,你的语句没有问题,可以编译通过!

互换的青春

这个不管有没有值返回都是 null
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server