3

「pippo」テーブルから最初の 18 行 (FIELD1 でソート) を削除し、同じ 18 行を minnie という別のクローンテーブルに挿入するにはどうすればよいですか?

次のコードは、FIELD1 で並べ替えられた最初の 18 行を抽出し、それらを削除します。

WITH  q AS
        (
        SELECT TOP 18 *
        FROM    pippo
        ORDER BY FIELD1 ASC /* You may want to add ORDER BY here */
        )
DELETE
FROM    q

削除する前に、同じ 18 行をミニー テーブルに挿入するにはどうすればよいですか?

よろしくお願いいたします。

4

2 に答える 2

6

使用する

WITH  q AS
        (
        SELECT TOP 18 *
        FROM    pippo
        ORDER BY FIELD1 ASC /* You may want to add ORDER BY here */
        )
DELETE
FROM    q
OUTPUT DELETED.* INTO TableNew
于 2012-10-17T10:24:43.683 に答える
1

必要に応じて、クエリのdelete内部をネストできます。selectinsert

declare @t1 table (Field1 int not null)
declare @t2 table (Field1 int not null)

insert into @t1 (Field1) select ROW_NUMBER() OVER (ORDER BY object_id) from sys.objects

;with First18 as (
    select top 18 * from @t1 order by Field1
)
insert into @t2 (Field1)
select * from 
    (
    delete from First18 output deleted.Field1) t
于 2012-10-17T10:30:15.937 に答える