+ -
当前位置:首页 → 问答吧 → insert into select的问题 求大神,很急

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

时间:2011-12-22

来源:互联网

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 再拿过来用

作者: zhouwei7682719   发布时间: 2011-12-22

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

作者: kuqideyupian   发布时间: 2011-12-22

引用楼主 zhouwei7682719 的回复:
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……

如果是这样,不如在dbo.ss1中建立一个触发器,将数据直接插入dbo.ss2中.

作者: dawugui   发布时间: 2011-12-22

OUTPUT子句貌似就可以了。

if判断可以去掉。

下面直接
SQL code

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

作者: maco_wang   发布时间: 2011-12-22

引用 1 楼 kuqideyupian 的回复:

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
#T 是什么类型 object?

作者: zhouwei7682719   发布时间: 2011-12-22

作者: maco_wang   发布时间: 2011-12-22

引用 3 楼 maco_wang 的回复:

OUTPUT子句貌似就可以了。

if判断可以去掉。

下面直接
SQL code

insert into dbo.ss2
select @saleid,a.,a.,a. from a where 条件a and @saleid>0
那dbo.ss1的插入呢?

作者: zhouwei7682719   发布时间: 2011-12-22

引用 4 楼 zhouwei7682719 的回复:

引用 1 楼 kuqideyupian 的回复:

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
#T 是什么类型 object?……

是临时表

作者: kuqideyupian   发布时间: 2011-12-22

引用 2 楼 dawugui 的回复:
引用楼主 zhouwei7682719 的回复:
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……

如果是这……

最好用触发器来做比较好

作者: szstephenzhou   发布时间: 2011-12-22

引用 7 楼 kuqideyupian 的回复:

引用 4 楼 zhouwei7682719 的回复:

引用 1 楼 kuqideyupian 的回复:

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

D……
谢绝 临时表 - -||

作者: zhouwei7682719   发布时间: 2011-12-22

2005+可以用OUTPUT子句 不过临时表效率比较高点

作者: fredrickhu   发布时间: 2011-12-22

output试试吧; 谢谢各位了

作者: zhouwei7682719   发布时间: 2011-12-22

不知道临时表哪得罪你了,反正我看你的需求用临时表是最合适的。

作者: kuqideyupian   发布时间: 2011-12-22