日期:2014-05-17  浏览次数:20500 次

sql 存储过程,同时向两个表插入记录
代码是这样的
if @zx='insert'
begin
       insert DisciplineTeamInfo values(@TeacherNO,@Name,@Sex,@Birthday,@ID,@Title,@TitelTime,@Academic,@AcadeGradTime);
       insert UserInfo values(@TeacherNO,@TeacherNO,'3');
        end
我想当我传入zx的值为insert的时候,同时向DisciplineTeamInfo,UserInfo 表插入信息,运行的时候DisciplineTeamInfo表可以正常插入,但UserInfo表就没有信息插入这是什么原因?
------最佳解决方案--------------------
语法看不出有什么问题,你可以尝试:
if @zx='insert'
 begin
 insert DisciplineTeamInfo values(@TeacherNO,@Name,@Sex,@Birthday,@ID,@Title,@TitelTime,@Academic,@AcadeGradTime);
print @teacherno

        insert UserInfo values(@TeacherNO,@TeacherNO,'3');
         end

看看插入第一条之后是否@teacherno这个变量无效了。也可以启用SQLServer Management studio的跟踪功能来跟踪一下到底执行了什么语句。
------其他解决方案--------------------
insert UserInfo values(@TeacherNO,@TeacherNO,'3');
把@TeacherNO 换成值 测试下,应该是此句执行失败的问题。
------其他解决方案--------------------
语法没问题。你可以再查询窗口单独的测试下
insert UserInfo values(@TeacherNO,@TeacherNO,'3');
把(@TeacherNO换成具体的值,看有没有错误
------其他解决方案--------------------
insert UserInfo values(@TeacherNO,@TeacherNO,'3')没有信息插入,有没有报错。

你的UserInfo表是只有3个字段么?你直接执行insert UserInfo values(@TeacherNO,@TeacherNO,'3')把变量换成符合表字段定义的类型的值试试
------其他解决方案--------------------
这段sql没问题,你没有贴完吧。
------其他解决方案--------------------
恩,调试过了,发现是我后面的代码有问题,后面的begin end忘记加了,因为没加,在后面直接删除,太马虎了,谢谢各位