Transact-SQLメモ - トランザクション、一時テーブル作成、便利なInsert処理など

知っていると便利なことを自分用にメモ
そのうち追記したりするかも




トランザクション


解説はいらないかな?
通常は例外発生時など異常時にロールバックするのが主な用途だが、ManagementStudio上ならデータの中身を変えずに挿入・更新されたデータを確認するといったことが可能

Begin Try
    Begin Transaction
    -- 何か処理
    ---
    ----

    -- ここでselectするとManagementStudioでデータを変更せずに確認が可能
    Rollback Transaction
    -- Commit Transaction
End Try
Begin Catch -- 例外
    Rollback Transaction
End Catch


一時テーブルの作成



テーブル名の先頭に#もしくは##をつけると一時テーブルとなる
tempdbに格納され寿命を過ぎると自動で削除される
複雑なJoinよりも複数回に分けて一時テーブルを操作したほうがパフォーマンスが良くなったりするらしい
Create Table #Work
(
    id    int,
    name  char(10) 
);



Select結果をInsert


別のテーブルからSelectした値をそのままInsert可能
自由に列を挿入できて定数値や関数なども使える

Insert Into #Work
Select
    1        AS id,
    'name'   AS name




その他


sp_columns - 列の型を取得できる。確認するのが面倒なときに
Exec sp_columns [TableName]


あんまり見ない書き方なのは仕様です


2016年6月4日土曜日