首页新闻找找看学习计划

存储过程其中报找不到存储过程

0
悬赏园豆:5 [已解决问题] 解决于 2012-08-31 19:47
-- =============================================
-- Author:        skzheng
-- Create date: 2011-11-22
-- Description:    插入行
-- ==============================================
ALTER PROCEDURE [dbo].[SP_InsertCposts]
@fields            NVARCHAR(1000),
@values            NVARCHAR(MAX),
@CTopicesId        nvarchar (20),
@PostUserId     nvarchar(20),
@PostUserName   nvarchar(20),
@PostTime       nvarchar(20),
@newid            NVARCHAR(100) output
AS
SET NOCOUNT ON;
BEGIN
    DECLARE @sqlstr NVARCHAR(MAX),@sqlStrr nvarchar(max)

    IF @fields != '' AND @values != ''
        BEGIN
            SET @sqlstr = 'INSERT INTO Cposts ('+@fields+') VALUES ( '+@values+');';
            SET @sqlstr = @sqlstr + 'SELECT @newid = SCOPE_IDENTITY();';
            set @sqlStrr='update CTopices set PostUserId='+@PostUserId+',PostUserName='+@PostUserName+',PostTime='+@PostTime+''' where Id='+@CTopicesId;
            EXECUTE  @sqlStrr;
            EXECUTE sp_executesql @sqlstr, N'@newid NVARCHAR(100) OUTPUT', @newid OUTPUT;
        
        END
END

这个就是我执行后报的错误,请问有谁知道是为什么啊?

rains的主页 rains | 小虾三级 | 园豆:860
提问于:2012-08-30 08:37
< >
分享
最佳答案
1

set @sqlStrr='update CTopices set PostUserId='+@PostUserId+',PostUserName='+@PostUserName+',PostTime='+@PostTime+''' where Id='+@CTopicesId;
改成

set @sqlStrr='update CTopices set PostUserId='''+@PostUserId+''',PostUserName='''+@PostUserName+''',PostTime='''+@PostTime+''' where Id='''+@CTopicesId+''' ';
试试

收获园豆:5
眯妖 | 小虾三级 |园豆:820 | 2012-08-30 09:15
其他回答(2)
-1
EXECUTE  @sqlStrr; 这里也要加上
sp_executesql 这个吧,要不sql语句当存储过程执行了
xu.c | 园豆:284 (菜鸟二级) | 2012-08-30 09:50
-1

你的存储过程写好以后,需要F5执行以下,才可以调用。

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-30 13:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册