私はtable1から最後のレコードを選択し、別のテーブルに挿入したいと思いました。これは私のクエリです。テーブルからレコードを選択して別のテーブルに挿入するにはどうすればいいですか?
Insert into table2 values(select top 1 col1,col2 from table1 order by id desc).
私はテーブルに値を追加するために知っている、cotation.Butに追加する必要がありますか? SQLで
私はtable1から最後のレコードを選択し、別のテーブルに挿入したいと思いました。これは私のクエリです。テーブルからレコードを選択して別のテーブルに挿入するにはどうすればいいですか?
Insert into table2 values(select top 1 col1,col2 from table1 order by id desc).
私はテーブルに値を追加するために知っている、cotation.Butに追加する必要がありますか? SQLで
あなたはtable1
が提供できないことを他の列に記入するリテラルを選択することができ、このような何か:デフォルトの値を取得します、あなたが列リストに名前を付けていない
insert into table2 (col_a, col_b, col_c, col_d)
select top 1 col1, col2, 'foo', 'bar'
from table1
order by id desc
任意の列、またはnull
デフォルトが定義されていない場合
挿入列リスト内の列の数および型と一致しなければならない選択された列の数と種類。
は、本質的にテーブルにデータを挿入するには基本的に2つの方法がある:一つは、他のは、一度に複数行を挿入することで、一度にそれを一列を挿入することです。のは、個別にそれらのそれぞれを見てみましょう:
INSERT INTO table_name (column1, column2, ...)
VALUES ('value1', 'value2', ...)
INSERT INTOの第二のタイプは、テーブルに複数の行を挿入することを可能にします。前の例とは異なり、すべての列の値を指定して単一の行を挿入する場合は、SELECT文を使用して表に挿入するデータを指定します。これが別のテーブルの情報を使用しているかどうかを考えているなら、正しいものです。構文は次のとおりです。
Insert into table2
select top 1 t1.col1,t1.col2 from table1 t1 order by id desc
それとも、このようなあなたの構文を使用することができます:
INSERT INTO table1 (column1, column2, ...)
SELECT t2.column3, t2.column4, ...
FROM table2 t2
をので、あなたの場合には、あなたはこのようにそれを行うことができます
declare @col1 type_of_col1, @col2 type_of_col2
select top 1 @col1 = t1.col1, @col2 = t1.col2 from table1 t1 order by id desc
Insert into table2 values(@col1, @col2)
Offcourse、これはすべて、列データ型が一致していることを前提としています。
これは、 'col1'と' col2'列は、2つの表の間に同じ名前であることを意味します。これは当てはまらないかもしれません。 – fge
@fgeはoffcourse、私はそれを前提とし... –
文字リテラルは二重引用符、単一引用符で囲む必要はない: 'VALUES( 'VALUE1'、...)' –
+1答えを簡単にしてくれてありがとう! –