to Leevy(叶风):
如果按你说的是需要在程序里修改关键字的,这就要考虑并发操作,我直接写到触发器里,就不需要考虑这些了阿。
我现在是把你你在程序里写的部分放到触发器中而已,这并不能解决我的问题阿

解决方案 »

  1.   

    立刻取出? 你靠什么来知道有记录增加!timer?
    用 标识 和 现在的时间来卡。
      

  2.   

    @@IDENTITY
    返回最后插入的标识值。在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。如果触发器在具有标识列的表上执行插入操作后激发,并且触发器插入到另一个没有标识列的表中,则 @@IDENTITY 将返回第一个插入的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。示例
    下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
      

  3.   

    @@IDENTITY
    返回最后插入的标识值。在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。如果触发器在具有标识列的表上执行插入操作后激发,并且触发器插入到另一个没有标识列的表中,则 @@IDENTITY 将返回第一个插入的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。示例
    下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
      

  4.   

    触发器对INsert操作的原理是先插入后触发,我利用存储过程插入记录,当然知道用@@Identity取出来,但是由于是后触发,所以这时还没有产生这个关键字。取出来的必然是null。
    上面的我早都试过了。
    还是没有解决我的问题阿。
      

  5.   

    通过C#的@Scope_Identity(或者类似这样一个东西,记不清了)好像也不行。
    我的问题通过C#或数据库来解决都行啊。请高手来帮忙阿
      

  6.   

    你用sqlserver的监视器监视sqladapter的update操作执行的sql语句,就知道了如何处理了。
    挺简单的
      

  7.   

    SqlServer的监视器在哪里?是不是Sql事件探察器?
    再就是,我直接用SqlCommand.ExecuteNonQuery()并用事务修改的数据库,没有用SqlAdapter的Update啊。