1 scope identity()、@@IDENTITY()是不是只能得到自增长的列?不是自增长的而是普通字符串可以么?

sql1 保存表1一条数据
sql2 保存表2一条数据,表2中某个字段为表1外键也就是说sql2中的数据必须对应表1中数据,这两个sql语句放到一个事务中,可以不用得到sql1插入的值直接保存么?
谢谢

解决方案 »

  1.   

    在ms sql server中一张表有自增长字段,最近插入表中记录的自增长字段可以通过@@IDENTITY或者SCOPE_IDENTITY()取得。
    通常情况下@@IDENTITY 和 SCOPE_IDENTITY()可以起到同样的效果
    先主表再从表
      

  2.   

    是得不到的,你自己可测试一下!
    如果不是自增长的,这个字段值是用户控制的,你完全可以设定,
    还用得到什么@@IDENTITY或者SCOPE_IDENTITY()吗??
      

  3.   

    是啊,我现在一个字符串,要保存到两个表里面
    可表2保存时候提示外键对应主键不存在这个值,我是放到一个事务里面的
    string repairNo ="ddd";
    string sql1 = "insert into test(col1,...) values('"+repairNo+"');
    string sql2 = "insert into testd(col2,...) values('"+repairNo+"');
    这两个sql语句放同一个事务里的
      

  4.   

    先保存存主表,再保存子表!
    先有主表的id,再有子表参照的id!
    这不可能不行哦!