-- ============================================= -- 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
这个就是我执行后报的错误,请问有谁知道是为什么啊?
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+''' ';
试试
EXECUTE @sqlStrr; 这里也要加上
sp_executesql 这个吧,要不sql语句当存储过程执行了
你的存储过程写好以后,需要F5执行以下,才可以调用。