存储过程:
CREATE PROCEDURE net_cjxgjk (@cjxgsj1 datetime,@cjxgsj2 datetime,@jgmc varchar(12)) AS
SELECT jw_xsb.xm 姓名, jw_bjb.bjmc 班级, jw_xsb.xh 学号, jw_kmb.xq 学期, jx_kcb.Kcmc 课程名称, jw_cjb.cjzp1 期末考, jw_cjb.cjzp2  补重1, 
      jw_cjb.cjzp3 补重2, jw_cjb.cjzp4  补重3 , jw_cjb.cjxgjl  成绩修改历史显示,jw_cjb.cjxgsj  修改时间
FROM jw_xsb INNER JOIN
      jw_bjb ON jw_xsb.bjdm = jw_bjb.bjdm INNER JOIN
      jw_cjb ON jw_xsb.xh = jw_cjb.xh INNER JOIN
      jw_kmb ON jw_bjb.bjdm = jw_kmb.bjdm INNER JOIN
      jx_kcb ON jw_kmb.kcbh = jx_kcb.Kcbh INNER JOIN
      xt_jg ON jx_kcb.jgdm = xt_jg.jgdm
WHERE (jw_cjb.cjxgsj BETWEEN @cjxgsj1 AND @cjxgsj2) AND (jw_cjb.cjxgjl <> '') and  xt_jg.jgmc=@jgmc
order by  jw_xsb .xh
GO
语言用的是c#查出来的数据只有“成绩修改历史显示”这项是唯一的,怎样把“成绩修改历史显示”用存储过程更新回去

解决方案 »

  1.   

    不行啊,连接查询出来的用update()那个方法会报错啊
      

  2.   

    对于多个基表不支持动态 SQL 生成。
      

  3.   


    给你一个例子update a
    set a.col1='Test'
    from table1 a inner join table 2 b on a.id=b.id
    where 1=1
      

  4.   


    给你一个例子update a
    set a.col1='Test'
    from table1 a inner join table2 b on a.id=b.id
    where 1=1
      

  5.   


    update a
    set a.col1=b.colX
    from table1 a inner join table2 b on a.id=b.id
    where 1=1
      

  6.   


    测试数据CREATE TABLE A
    (
      id INT IDENTITY(1,1) PRIMARY KEY,
      col1 VARCHAR(10)
      
    )
    CREATE TABLE B 
    (
     id INT FOREIGN KEY REFERENCES A(id),
     col1 VARCHAR(10)
    )INSERT A SELECT 'zjp' UNION ALL SELECT 'zoujp'
    INSERT B SELECT 1,'hhhh'UNION ALL SELECT 1,'jjjj'UNION ALL SELECT 2,'aaaa'
    SELECT * FROM A
    SELECT * FROM Bupdate A
    set A.col1='Test'
    from  A inner join   B on A.id=B.id
    where 1=1