ALTER PROCEDURE [dbo].[ST_StudentEvaluationUpdate] 
    -- Add the parameters for the stored procedure here
    @StudentCode INT,
    @TeachingMissionCode INT,
    @FieldName VARCHAR(10),
    @FieldValue FLOAT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    DECLARE
    @s VARCHAR(200)
    -- Insert statements for procedure here
    SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']=['+ltrim(@FieldValue)+'] WHERE StudentCode =['+ltrim(@StudentCode)+'] and TeachingMissionCode =['+ltrim(@TeachingMissionCode)+']'
    EXEC(@s)
END

解决方案 »

  1.   


    alter PROCEDURE [dbo].[ST_StudentEvaluationUpdate] 
        -- Add the parameters for the stored procedure here
        @StudentCode INT,
        @TeachingMissionCode INT,
        @FieldName VARCHAR(10),
        @FieldValue FLOAT
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
        DECLARE
        @s VARCHAR(200)
        -- Insert statements for procedure here
        SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']=['''+@FieldValue+'''] WHERE StudentCode =['+@StudentCode+'] and TeachingMissionCode =['+@TeachingMissionCode+']'
        EXEC(@s)
    END
      

  2.   

     SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']=['+ltrim(@FieldValue)+'] WHERE StudentCode =['+ltrim(@StudentCode)+'] and TeachingMissionCode =['+ltrim(@TeachingMissionCode)+']'
        
      

  3.   

    ALTER PROCEDURE [dbo].[ST_StudentEvaluationUpdate] 
        -- Add the parameters for the stored procedure here
        @StudentCode INT,
        @TeachingMissionCode INT,
        @FieldName VARCHAR(10),
        @FieldValue FLOAT
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
        DECLARE
        @s VARCHAR(200)
        -- 后面是赋值怎么还加[]?????
        SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']='+ltrim(@FieldValue)+' WHERE StudentCode ='+ltrim(@StudentCode)+' and TeachingMissionCode ='+ltrim(@TeachingMissionCode)
        EXEC(@s)
    END
      

  4.   

    ALTER PROCEDURE [dbo].[ST_StudentEvaluationUpdate] 
        -- Add the parameters for the stored procedure here
        @StudentCode INT,
        @TeachingMissionCode INT,
        @FieldName VARCHAR(10),
        @FieldValue FLOAT
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
        DECLARE
        @s VARCHAR(200)
        -- 后面是赋值怎么还加[]?????
        SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']='''+ltrim(@FieldValue)+''' WHERE StudentCode ='''+ltrim(@StudentCode)+''' and TeachingMissionCode ='''+ltrim(@TeachingMissionCode)+''''
        EXEC(@s)
    END
      

  5.   

    对是对了不过又报这个错了
    exec ST_StudentEvaluationUpdate @StudentCode=23381,@TeachingMissionCode=6703,@fieldName=N'SC43',@fieldValue=1
    消息 207,级别 16,状态 1,第 1 行
    列名 '23381' 无效。
    消息 207,级别 16,状态 1,第 1 行
    列名 '6703' 无效。
    这个怎么会是列名嘛
      

  6.   


    --注意引号。
    ALTER PROCEDURE [dbo].[ST_StudentEvaluationUpdate]     @StudentCode INT,
        @TeachingMissionCode INT,
        @FieldName VARCHAR(10),
        @FieldValue FLOAT
    AS
    BEGIN
        SET NOCOUNT ON;
        DECLARE @s VARCHAR(200)
        SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']='+ltrim(@FieldValue)+' WHERE StudentCode =  
        '''+@StudentCode+''' and TeachingMissionCode ='''+@TeachingMissionCode+''''
        EXEC(@s)
    END
      

  7.   


     exec ST_StudentEvaluationUpdate 23381,6703,N'SC43',=1  这样试试
      

  8.   

    exec ST_StudentEvaluationUpdate 23381,6703,N'SC43',1
    还有个等号没去掉,呵呵
      

  9.   

    --try
    SET @s='UPDATE PJ_StudentCommentary    SET ['+@FieldName+']=['+ltrim(@FieldValue)+'] WHERE StudentCode ='+ltrim(@StudentCode)+' and TeachingMissionCode ='+ltrim(@TeachingMissionCode)+''
        EXEC(@s)