Transact-SQL(T-SQL)とは、Microsoft社がSQLを拡張したもので、Microsoft社のリレーショナルデータベースマネジメントシステム(RDBMS)であるSQL Serverで使われるSQLです。
標準SQLにはない制御フロー(IF文など)、変数、独自関数などが利用できるよう拡張されており、プログラミング言語のような記述ができます。
本記事では、T-SQLの概要やメリット、特徴、Azure SQLとSQL Serverの違いについて解説していきます。
T-SQLとは
SQLとは、データベース言語のなかで最も普及している、RDBMS上でデータベースを制御するための言語です。
Transact-SQL(T-SQL)は、Microsoft社がSQLを拡張したものであり、Microsoft社のRDBMS「SQL Server」で使われています。
標準のSQLにはない、IF文などの制御フロー、変数、独自関数などが利用できるよう拡張されており、プログラミング言語のような記述が可能です。
Transact-SQLを使用することで、幅広い開発を実現できるようになります。
T-SQLのメリット
T-SQLを利用するメリットを解説します。
Microsoftの各種製品との連携が容易
SQL Serverとともに、T-SQLはMicrosoft社が開発したものであるため、Microsoftの各種製品との連携の容易さがメリットとして挙げられます。
たとえば、SQL Serverのテーブルの内容を、簡易な操作でExcelのシートへ出力(エクスポート)できるほか、逆にExcelのシートからの入力(インポート)も可能です。
VBAからSQLを実行することも可能であり、さまざまな手作業の簡略化が図れます。
SQL Serverのストアドプロシージャを実装できる
ストアドプロシージャとは、データベースを操作する一連の処理(SQL文)をひとつのプログラムとしてまとめたものです。
実行に適した形に解析・変換され、RDBMSに格納されるため、プログラムの処理パフォーマンスに優れています。
ストアドプロシージャを記述する言語は統一規格にはなっておらず、データベース製品ごとに異なる言語を利用しなければなりません。
SQL ServerではT-SQLを使うことで、ストアドプロシージャを実装可能です。
T-SQLの特徴
T-SQLの特徴について確認していきましょう。
特徴1.制御フロー言語
制御フローとは、プログラミング言語の仕様や構文のうち、命令の流れを定義するものです。
たとえば、IFといった条件分岐、WHILEといった反復構造、GOTOといった分岐構造を指します。
T-SQL の制御フローのキーワードとしては、BEGIN と END、BREAK、CONTINUE、GOTO、IF と ELSE、RETURN、WAITFOR、WHILE があります。
特徴2.局所変数(ローカル変数)
局所変数は「ローカル変数」とも呼ばれ、使用範囲(スコープ)だけで参照できる変数をいいます。局所変数は実行中のスクリプト内でのみ使用されるため、スコープ外の変数利用について気にかける必要がなくなり、スクリプトの記載が容易となります。
特徴3.広域変数(グローバル変数)
グローバル変数と呼ばれる広域変数は、プログラム全体で頻繁に参照・更新される変数に、すべてのスコープからアクセスできる変数です。T-SQLではユーザー定義の広域変数をサポートしていないため、広域変数を使うことで実行中のスクリプト内でさまざまなステータスを安全に取得、監視できるようになります。
T-SQLを使用するツール
T-SQLを使用するツールについて紹介します。
SQL Server Management Studio(SSMS)
「SQL Server Management Studio」(SSMS)とは、SQL Serverや、クラウド上で利用できるデータベース「Azure SQL Database」といったSQLインフラストラクチャを管理するための統合環境です。SSMS を使用して、各コンポーネントへのアクセスや構成、管理、運営、開発を行えます。 グラフィックツールやスクリプトエディタなどのユーティリティを使い、開発者やデータベース管理者はSQL Serverにアクセスできます。
SQL Server Data Tools(SSDT)
「SQL Server Data Tools」 (SSDT)とは、SQL Serverを使用するアプリケーション開発者のための開発支援ツールです。SSDTはMicrosoftの著名なソフトウェア開発環境「Visual Studio」におけるアプリケーション開発と同等の容易さで設計・展開が可能です。
sqlcmd
T-SQLを、コマンドプロンプトやバッチファイルといった、スクリプトファイルで実行できようにするコマンドが「sqlcmd」です。sqlcmdは、Microsoftのアプリケーションからデータベースにアクセスする仕組みである「ODBC」(Open Database Connectivity)を使い、T-SQLのバッチを実行します。
Azure Data Studio
Azure Data Studioは、Windows、macOS、LinuxといったさまざまなOSで利用できるクロスプラットフォームデータベースツールです。軽量で動作が軽く、OSを選ばないため、ハイブリッドやマルチクラウドといった環境のデータの統合管理に最適です。
Azure SQLとは?SQL Serverとの違い
Azure SQLとは、Microsoftのクラウドコンピューティングサービス「Microsoft Azure」におけるRDBMSマネージドサービスの総称です。提供されている3種類の形態やSQL Serverとの違いを、確認していきましょう。
Azure SQLの形態
Azure SQLで提供される形態は次の3種類です。
Azure SQL Database
Azure SQL Databaseは、フルマネージドのPaaS型RDBMSサービスです。
操作性に優れており、サーバー構築や保守などの管理作業を行わなくてもよいサーバーレスで導入しやすいことが特徴です。
ほぼすべてのサーバー管理を代行してくれるフルマネージドであるため、アップグレードや修正プログラムの適用、バックアップ、監視といったデータベース管理機能もユーザーが行う必要はありません。
Azure SQL Managed Instance
Azure SQL Managed InstanceもフルマネージドのPaaS型のサービスです。
内部をクラウド向けに最新化する形態であり、オンプレミス環境からの移行に最適です。
Azure VM上のSQL Server
Azureのフルマネージド仮想マシンでSQL Serverを実行する形態です。
SQL Serverワークロードをクラウド上へ移行すること(リフト&シフト)が容易であり、コストを削減しながらクラウドでのSQL Server 管理を簡素化できます。
SQL ServerとAzure SQLの違い
SQL Serverはオンプレミス上のRDBMSであり、ユーザーの管理が必要です。しかし、カスタム可能である箇所も多いため、自由度が高いシステムを必要とする場合は最適です。
一方、Azure SQLはクラウド上のサービスです。前述のとおり3つの形態をもつことが特徴です。
まとめ
Microsoft社のSQL Serverで利用されるT-SQLは、IF文などの制御フロー、変数、独自関数などが利用でき、プログラミング言語のような記述が可能な拡張されたSQLです。
Microsoftの各種製品との連携が容易であり、SQL Serverのストアドプロシージャの実装もできるため、幅広い開発を行いたい場合の選択肢として検討してみてはいかがでしょうか。
Microsoft AzureはMicrosoftのクラウドコンピューティングサービスであり、SaaS、PaaS、IaaSといった形態で100を超えるサービスを提供しています。
SQLからAzure SQL Databaseにデータベース移行を行う際も、 データ型や演算子といったT-SQL機能の大半は、Microsoft SQL Server と Azure SQL Database の両方でサポートされます。
オンプレミス環境からの、安全なクラウド移行の選択肢としてご検討ください。