insert into dbo.Bas_Bulletin(Bul_Type,Bul_Title)values('test','tst2')
如何获取Bas_Bulletin的当前插入ID号并插入Bas_BulletinReader表
查询语句如下
select Psn_ID dbo.Right_UserRight where RR_ID = 'HHAC' 
insert into Bas_BulletinReader(Bul_ID,Psn_ID) values(Bas_Bulletin的当前插入ID号,查询语句查出几个人就插入几条数据)
如何循环插入select Psn_ID dbo.Right_UserRight where RR_ID = 'HHAC' 查询数据

解决方案 »

  1.   

    insert into dbo.Bas_Bulletin(Bul_Type,Bul_Title)values('test','tst2')
    select  @@identity
      

  2.   

    SELECT  IDENT_CURRENT('Bas_Bulletin')  --返回指定表中生成的最后一个标示值   
      

  3.   

    关键是如何循环插入
    insert into Bas_BulletinReader(Bul_ID,Psn_ID) values(SELECT  IDENT_CURRENT('Bas_Bulletin'),查询语句查出几个人就插入几条数据)
    查询语句如下
    select Psn_ID dbo.Right_UserRight where RR_ID = 'HHAC' 
      

  4.   

    insert into Bas_BulletinReader(Bul_ID,Psn_ID) select IDENT_CURRENT('Bas_Bulletin'),Psn_ID from Right_UserRight where RR_ID = 'HHAC' 
      

  5.   

    如果是自增列,不就是:@@identity?
      

  6.   

    scope_identity();返回最大标识 只作用于当前的表中
    @@identity作用于整个数据库 !!!
      

  7.   

    使用output
    sql server 2005中的output子句,可以使你从修改语句(INSERT、UPDATE、DELETE)中将数据返回到表变量中。带结果的 DML 的有用方案包括清除和存档、消息处理应用程序以及其他方案。这一新的 OUTPUT 子句的语法为: 
    OUTPUT <dml_select_list> INTO @table_variable 可以通过引用插入的表和删除的表来访问被修改的行的旧/新映像,其方式与访问触发器类似。在 INSERT 语句中,只能访问插入的表。在 DELETE 语句中,只能访问删除的表。在 UPDATE 语句中,可以访问插入的表和删除的表declare @id int
    insert into dbo.Bas_Bulletin(Bul_Type,Bul_Title)values('test','tst2')
    output inserted.Bas_Bulletid into @id --就得到新的Bas_Bulletid 赋值给@i
    --是不是有点像触发器详见http://xiaoer-1982.javaeye.com/blog/497473