2009/04/27

[SQL]サブクエリで取得した値をInsertしたい

などと思って書きました。
BEGIN TRAN

INSERT INTO
HogeTable
SELECT
  (SELECT
    COALESCE(MAX([HogeID]), 0) + 1
   FROM
    [HogeTable])
, 'foo.txt'
, NULL
, (SELECT DISTINCT
    [ServerFolderPath]
   FROM
    [HogeTable]
   WHERE
    [ClientFolderPath] = 1)
,1
, 28
, 0
, 0

SELECT
*
FROM
HogeTable

ROLLBACK

当初、Insert Into (…) Values (…)で書いたらスカラ値がどうのこうのってSQLServerに怒られたのでInsert Into ~ Select ~でやってみました。

INSERT文とかUPDATE文とか作るときBegin Tran ~ RollBackで囲むと便利だと気づいたのはココ最近;;


達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)SQLパズル 第2版 プログラミングが変わる書き方/考え方プログラマのためのSQL 第2版SQL Hacks ―データベースを自由自在に操るテクニック

0 件のコメント:

コメントを投稿