前回の続き
前回からINSERT文に入りました。
今回は、それの応用です。
SELECT文を使った、INSERT文
例えば特定のレコードの内容の一部のカラムを変えてレコードを追加したい。なんてことがたまにある。
今回の目的は、そんなときにSELECT文を使ってデータを挿入することです。
まずはPerson.PersonPhone テーブルについて、以下の結果を見てみてください。
SELECT * FROM Person.PersonPhone WHERE BusinessEntityID = 1
こんな感じに出力されます。
これを利用して、PhoneNumberTypeIDだけ変更したデータを挿入することができます。
文法はこんなかんじ。
INSERT INTO [テーブル名] SELECT [カラム名] ,[カラム名] ... FROM [テーブル名]
実際に書くとこんなかんじ。
INSERT INTO Person.PersonPhone SELECT BusinessEntityID, PhoneNumber, 2, SYSDATETIME() FROM Person.PersonPhone WHERE BusinessEntityID = 1
結果を確認してみましょう。
SELECT * FROM Person.PersonPhone WHERE BusinessEntityID = 1
追加したデータが確認できました。
今回は、同じテーブルからデータを作成して追加しましたが、別のテーブルを利用したり、JOINしたりなんかもできます。
最後に練習用データなので、消しておきます。
DELETE FROM Person.PersonPhone WHERE BusinessEntityID = 1 AND PhoneNumberTypeID = 2
以上、今回はここまで。