2010-01-20
SQL Azure Database の照合順序について
自習書にも書いたのですが、SQL Azure Database の照合順序は、「SQL_Latin_General_CP1_CI_AS」です。
char や varchar データ型へ日本語(ダブル バイト)文字を正しく格納するには、次のように列の照合順序を設定します。
CREATE TABLE テーブル名 ( 列名 データ型 PRIMARY KEY ,列名 varchar(100) COLLATE Japanese_CI_AS ,列名 …)
ただし、変数には照合順序を指定することができないので、次のように変数のデータ型を Unicode 対応の nchar や nvarchar へ変更する必要があります。
DECLARE 変数名 nvarchar(50) = N'検索文字' SELECT * FROM テーブル名 WHERE 列名 = 変数
ただ、この場合は、内部的に列データの CONVERT_IMPLICIT(暗黙の型変換)が発生し、パフォーマンスに影響を及ぼします。これを回避するには、テーブルの列定義(データ型)を Unicode 対応の nchar や nvarchar へ変更するようにします。
CREATE TABLE テーブル名 ( 列名 データ型 PRIMARY KEY ,列名 nvarchar(50) COLLATE Japanese_CI_AS ,列名 …)
ただし、nchar や nvarchar は、char や varchar データ型よりもデータの格納効率が悪いことに注意しましょう。
2010-01-17
SQL Azure Database のテーブルにはクラスタ化インデックスが必須
SQL Azure Database のテーブルにデータを追加するには、クラスタ化インデックスが必要です。
さもないと、データ追加時に次のようなエラーが出て、追加することができません。
主キーを設定すれば、自動的にクラスタ化インデックスが追加されます。
主キーを設定せずにクラスタ化インデックスのみを作成する場合は、次のように行います。
CREATE CLUSTERED INDEX インデックス名 ON テーブル名(列名)
こういった操作は、SQL Server と全く同じですね。
SQL Server 2008 R2 Management Studio から SQL Azure へ接続するには
SQL Server 2008 R2 Management Studio から SQL Azure へ接続するには、通常の SQL Server への接続と同様に、[データベース エンジンへの接続]ダイアログで、サーバー名に SQL Azure のサーバー名を入力して、SQL Server 認証を選択して、SQL Azure の管理者アカウント名とパスワードを入力します。
[接続]ボタンをクリックした後、次のようなエラーが出る場合は、SQL Azure Firewall の設定を確認してください。
SQL Azure では、USE が使えないので、任意のデータベースへ接続したクエリ エディタを表示するには、オブジェクトエクスプローラで任意のデータベースをクリックしてから、[新しいクエリ]ボタンをクリックします。
また、[データベース エンジン クエリ]ボタンをクリックして、[データベース エンジンへの接続]ダイアログを表示し、[オプション]ボタンをクリックして、接続するデータベースを選択することもできます。
2010-01-16
SQL Azure Database を利用するための設定
SQL Azure Database を利用するには、最初に、下記の SQL Azure のポータル サイトで、次の設定を行う必要があります。
・SQL Azure Database の管理者アカウントとサーバーの作成
・SQL Azure Firewall の設定
・データベースの作成(Management Studio からでも可能)
SQL Azure のポータルサイトでサブスクリプション名をクリックします。
[Terms of Use](使用条件)ページで使用条件を確認して、[I Accept]ボタンをクリックします。
[Create Server](サーバーの作成)ページで任意の管理者名とパスワードを入力し、利用するサーバーの場所(データセンター)を選択します。
[Create Server]ボタンをクリックし、作成が完了すると、次のようにサーバー名が表示されます。
SQL Azure Firewall の設定は、[Firewall Settings]タブで、[Add Rule]ボタンをクリックます。
自分の IP アドレスをもとにした(接続側の) IP アドレスの範囲を入力し、[Submit]ボタンをクリックすれば設定完了です。
SQL Azure Database 上にデータベースを作成するには、[Databases]タブで[Create Database]ボタンをクリックして作成します。
データベースの作成については、SQL Server Management Studio を利用しても行えます。
Windows Azure の申し込み方法
新年、明けましておめでとうございます。
年末・年始は「SQL Azure」の自習書の執筆のための検証作業に追われていました。現在は、やっと一息ついているところです。
SQL Azure 自習書の目次については、松本崇博のブログの次のページをご覧下さい。
弊社執筆の SQL Azure の自習書が公開されました〜
http://d.hatena.ne.jp/matu_tak/
SQL Azure は、Windows Azure プラット フォームの一部のクラウド ベースの RDB です。
MSDN サブスクライバ会員向けの特典プランを利用する申し込みは、次のように MSDN サブスクリプションのホームページへアクセスして「アカウント」ページを開き、「Windows Azure プラットフォーム」をクリックします。
先に進むと料金プランについて確認することができます。
MSDN サブスクライバ会員の特典メニューでは、開発用途限定で毎月一定量まで8ヶ月無料で各サービスを利用することができます。
2010-01-04
SQL Server 2008 R2 についての最新リソース情報
新年明けましておめでとうございます!
マイクロソフトのエバンジェリスト安納さんが、SQL Server 2008 R2 の最新リソース情報について、わかりやすくまとめて下さっています。
http://blogs.technet.com/junichia/archive/2009/12/22/3302016.aspx
ローンチに向けて、これからどんどんリソースが増えていくと思われますので、これからも安納さんのブログに注目ですね。
2009-12-30
SQL Server 2008 の Transact-SQL の TRY 〜 CATCH 構文でエラーに関する情報を取得するには
Transact-SQL の TRY 〜 CATCH 構文の CATCH ブロックでは、エラーに関する情報を取得することができます。
たとえば、エラー番号とエラーメッセージ、エラーの重大度レベルを取得するには、ERROR_NUMBER と ERROR_MESSAGE、ERROR_SEVERITY 関数を利用して、次のように記述します。
BEGIN TRY 例外の発生を調べるコード END TRY BEGIN CATCH 例外が発生したときに処理するコード SELECT ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_SEVERITY() END CATCH
なお、TRY 〜 CATCH 構文は SQL Server 2005 からの機能です。
















