INSERT文について
ちょいとメモを。
インサート時に、他テーブルからのデータを取得する場合、SQLServerはvaluesの中にSELECTを書けないので、こんな風に書きます。
INSERT INTO table1(column1,table2_id) SELECT 'TESTDATA',(SELECT TOP 1 id FROM table2)
なんとなく気持ち悪い感じがするかもしれないですけど
これはVALUESのかわりにSELECTを使えることを考えると別に普通なのですよね
INSERT INTO table1(column1,table2_id) SELECT TOP 1 table2.column1,table2.id FROM table2
みたいな。
ちなみにTOP付けないと、検索でひっかかった行全部インサートされます。
んー・・・なんかそれだとVALUES句が要らない気がしてきたけど。。。
他のテーブルを参照しないという意思が明確にできるからいいのかな?