プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【SQL Server(連載)】INSERT文(SELECT文の利用) -16-

www.pon-x.jp

前回の続き

前回からINSERT文に入りました。
今回は、それの応用です。

SELECT文を使った、INSERT文

例えば特定のレコードの内容の一部のカラムを変えてレコードを追加したい。なんてことがたまにある。

今回の目的は、そんなときにSELECT文を使ってデータを挿入することです。
まずはPerson.PersonPhone テーブルについて、以下の結果を見てみてください。

SELECT * 
FROM Person.PersonPhone 
WHERE BusinessEntityID = 1

こんな感じに出力されます。
f:id:hanabusa-snow:20201201084804p:plain

これを利用して、PhoneNumberTypeIDだけ変更したデータを挿入することができます。
文法はこんなかんじ。

INSERT INTO [テーブル名]
SELECT [カラム名] ,[カラム名] ... FROM [テーブル名]

実際に書くとこんなかんじ。

INSERT INTO Person.PersonPhone
SELECT 
    BusinessEntityID,
    PhoneNumber,
    2,
    SYSDATETIME() 
FROM Person.PersonPhone 
WHERE BusinessEntityID = 1

f:id:hanabusa-snow:20201201085203p:plain

結果を確認してみましょう。

SELECT * FROM Person.PersonPhone WHERE BusinessEntityID = 1

追加したデータが確認できました。
f:id:hanabusa-snow:20201201085416p:plain

今回は、同じテーブルからデータを作成して追加しましたが、別のテーブルを利用したり、JOINしたりなんかもできます。

最後に練習用データなので、消しておきます。

DELETE FROM Person.PersonPhone WHERE BusinessEntityID = 1 AND PhoneNumberTypeID = 2







以上、今回はここまで。