这个没必要写这么复杂吧,用循环和游标。你用的是2008吗,如果用2008,可以直接用merge语句,很方便的实现:没有数据就insert,如果有就update的

解决方案 »

  1.   

    这个是merge 语句的一个例子,你可以参考一下。适合2008:
    SQL Server MERGE 例子
    http://hi.baidu.com/wangzhiqing999/item/b929550ebcc152d772e67624
      

  2.   

    另外,你的游标看着不太对,我觉得那个while应该改成这样把:DECLARE StartEndCur CURSOR FOR
    SELECT 字段
    FROM
    表名
    WHERE
    ID = @ID
    BEGIN TRYBEGIN TRANSACTION
            --打开游标
    OPEN StartEndCur
            --这里开始循环?
    FETCH NEXT FROM StartEndCur INTO
            @EQUIPMENTCODE --保存到声明的字段变量中          SET @i = 0
    WHILE @@fetch_status = 0   --表示游标状态正确,游标中还有记录
    BEGIN
           。。
           取下一条数据

           SET @i = @i + 1
      

  3.   

    メッセージ 50000、レベル 16、状態 1、プロシージャ T_COILRESULT_RECORD、行 23
    T_COILRESULTの登録・更新に失敗しました
    メッセージ 3609、レベル 16、状態 1、行 1
    トランザクションはトリガーで終了しました。バッチは中止されました。
      

  4.   


    你有完整的代码不,这个代码,看不出什么问题有点长,麻烦你帮我看看
    http://blog.csdn.net/neusoft06/article/details/18949475
      

  5.   


    你有完整的代码不,这个代码,看不出什么问题有点长,麻烦你帮我看看
    http://blog.csdn.net/neusoft06/article/details/18949475呵呵,挺长的哈,800多行代码。