日期:2014-05-18  浏览次数:20565 次

insert into select的问题 求大神,很急
SQL code

declare @saleid int
    insert into  dbo.ss1
    select a.,a.,a. from a where 条件a
        set @saleid=@@IDENTITY 
if @saleid>0
begin
        insert into  dbo.ss2 
        select @saleid,a.,a.,a. from a  where 条件a
end


各位大神有没有什么办法使 不用查询两次;第一次查询的结果保存下来。然后下面的insert 再拿过来用

------解决方案--------------------
SQL code

    select a.,a.,a. 
INTO #T
from a where 条件a

insert into  dbo.ss1
SELECT * FROM #T
insert into  dbo.ss2 
SELECT * FROM #T

DROP TABLE #T

------解决方案--------------------
探讨
SQL code

declare @saleid int
insert into dbo.ss1
select a.,a.,a. from a where 条件a
set @saleid=@@IDENTITY
if @saleid>0
begin
insert into dbo.ss2
select @sa……

------解决方案--------------------
OUTPUT子句貌似就可以了。

if判断可以去掉。

下面直接
SQL code

 insert into  dbo.ss2 
        select @saleid,a.,a.,a. from a  where 条件a and @saleid>0

------解决方案--------------------
OUTPUT子句参考:
http://blog.csdn.net/fan158/article/details/6261963
------解决方案--------------------
探讨
引用:
SQL code

declare @saleid int
insert into dbo.ss1
select a.,a.,a. from a where 条件a
set @saleid=@@IDENTITY
if @saleid>0
begin
insert into dbo.ss2
select @sa……

如果是这……