検索
連載

SQL Server 2008で変わる開発スタイル一気に分かるSQL Server 2008 新機能(3)(2/3 ページ)

前回はSQL Server 2008の管理者向け新機能のうち5つの機能に注目し、ご紹介しました。今回は、開発者向け新機能とBIコンポーネントの新機能について紹介します。第1回でご紹介したSQL Server 2008のさまざまな追加機能を詳しく見ていきます。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

新しいDML(Data Manipulation Language):MERGEステートメント

 Oracleでは以前から提供されていましたが、SQL Serverでも2008からMERGEステートメントが使えるようになります。MERGEステートメントではキー項目で比較し、一致する場合と一致しない場合でそれぞれ異なる処理を行えます。

 例えば、リスト1のようなSQL文を実行することで、図1のTable1、Table2をマージできます。

MERGE Table1

Using Table2

On (Table1.Col1 = Table2.Col3)

When Matched Then

 Update Set Table1.Col2 = Table2.Col4 -----(1)

When Not Matched Then

 INSERT (Table1.Col1, Table1.Col2) Values (Table2.Col3, Table2.Col4); ----(2)

リスト1 SQL Server 2008のMERGEステートメントを使ってテーブルをマージする
図1 MERGEステートメント
図1 MERGEステートメント

 リスト1では、Table1のCol1列とTable2のCol3列を比較し、一致する場合はTable1のCol2列をTable2のCol4列に変更し(1)、Table2にしかないレコードはTable1に追加します(2) 。

 従来であれば、例えば更新処理が多いケースではまず更新を行い、更新件数が0件であれば追加する、というロジックをアプリケーション側で逐一実装していました。

  SQL Server 2008で実装されるこのMERGEステートメントを利用すれば、同様の処理を1つのSQL文で実現できるようになります。結果として、開発やテストフェイズでの作業負荷の軽減が期待できます。

インテリセンス機能/文法エラーチェック機能

 Visual StudioではおなじみのインテリセンスがSQL Server 2008のManagement Studioで使用できるようになりました。インテリセンスはSQL文作成中に、次に入力すべきキーワードの候補を表示し、クエリ作成を支援する機能です。

 例えば、サンプルデータベースである「AdventureWorks」データベースに対して、Management Studioの「クエリエディタ」より次のクエリを作成するとします。

SELECT ProductID, Name, ProductNumber FROM AdventureWorks.Production.Product


 まず「SELECT ProductID, Name, ProductNumber FROM AdventureWorks」と入力します。その後に「.」(ドット)を入力すると、入力可能な候補一覧が表示されます。

図2 インテリセンス機能
図2 インテリセンス機能

 Visual Studioでのアプリケーション開発と同様、表示された候補から選択するか、あるいはさらに入力を続けて候補を絞り込むこともできるため、単純なタイプミスや文法エラーがすぐに分かり、入力負荷の軽減が図れます。派手さはありませんが、実用的な改善です。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る