ラベル MSSQL の投稿を表示しています。 すべての投稿を表示
ラベル MSSQL の投稿を表示しています。 すべての投稿を表示

2015年12月7日月曜日

【SQLserver】DBテーブル内のカラムにコメントを登録する

こんにちわ、開発者のⅠです。

さて、今回はDB操作に関するお話です。
クエリ文を作成しそれをプログラム上で実行することで、新規テーブルの作成やカラム追加など、様々な操作が可能です。

その中で、今回はカラムにコメントを登録する方法を伝えします。
カラムの定義変更や追加には【ALTER TABLE】を利用することになりますが、新規にカラムを追加する場合はコメントには何もない状態です。

このコメント、カラム自身がなにを格納するものなのか、それを説明するのに結構重要なものです。コメント自体は手動で登録・編集が可能ですが、カラム作成と同時に登録できれば手間を省けますね。

それでは、早速書いてみたいと思います。
環境は、
・管理プログラム:SQL Server Management Studio
・対象テーブル:日本の観光名所を登録している「dbo.tbl_attractions」
・追加するカラム:設立した年を格納する『year』 とします。
/* カラム『year』の追加 */ 
ALTER TABLE tbl_attractions ADD year datetime

/* カラム『year』にコメントを登録する */
EXEC sys.sp_addextendedproperty  @name=N'MS_Description'
                                ,@value=N'設立した年'
                                ,@level0type=N'SCHEMA'
                                ,@level0name=N'dbo'
                                ,@level1type=N'TABLE'
                                ,@level1name=N'tbl_attractions'
                                ,@level2type=N'COLUMN'
                                ,@level2name=N'year'


これで、カラムにコメントが登録できるはずです。
登録されたかどうかを確認するには、対象のテーブルで右クリックし、デザインを開くとカラムの設定情報の一覧が表示されますから、その中の”説明”に登録したコメントが入っているはずです。

それでは、今日はこの辺りで失礼します。

2015年11月26日木曜日

DISTINCTを使って重複を除外して表示

DISTINCTを使って重複を除外して表示

こんにちは山田です。
DB環境:MSSQL

登録したデータから、このカラムってどんな種類があったっけ?
と思った時に役立つ方法です。
つまり
取り出したレコードから重複する行を除外することができます。


■元のテーブル

category    color    size
----------------------------
adult         red       small
adult    blue     big
adult    blue     medium
kid       red       big  

■クエリの文法
 一意にしたいカラムの前にdistinctをつけたあげればよいです。

SELECT DISTINCT category

FROM mst_test


■結果
category
----------------------------
adult
kid

そもそもdistinctとは、「まったく異なるもの」という意味になるみたいです。

2015年11月12日木曜日

SQLで列の最大値をだす

こんにちわ山田です。
ポッキーの日の翌日になるのですが、
この日にあやかって薬用石鹸のミューズが小ネタを挟んできてびっくりしました。
気になった方は知らない人は、ポッキー、ミューズで検索すると出てくると思います。

さて、本日はSQL操作の小ネタになります。
使用環境:Microsoft SQL Server

テーブルのキーとは別に、目的の列を一意の値にするのが目的です。

■指定列の最大値
構文は以下のようになります。
 SELECT MAX(列名)
 FROM テーブル名

同様にMINを入れると列の最少値になります。

私の場合は、INSERT文の値に、MAX関数を使用して一意でかつ、
どんどん大きくさせることが出来ました。

2015年10月20日火曜日

クエリの速度を見る方法



こんにちわ山田です。
MSのManagement Studio を使った SQL Server の操作で
クエリの実行速度の計測方法を知ったのでその覚書です。




いつも使っているクエリの実行の右隣に、
「実行プラン」と「クライアント統計」というアイコンがあります。
選択して、いつも通りクエリを実行すると、なんと!実行速度がさくっとでます!

外部結合をたくさんして、サーバーの負荷がかかっているのかなと心配になったら
ここの一番下の、「サーバー応答の待機時間」を見れば処理にかかった時間を見ることできます。

2015年10月9日金曜日

SQL 算術オーバーフロー エラー

「expression をデータ型 datetime に変換中に、算術オーバーフロー エラーが発生しました。」

こんにちはYです。
クエリを実行中、上記のエラーが発生してちょっと調べてみました。


declare @datetimedisp datetime
set @datetimedisp = 20160101

select
    *
from
    mst_table
where
  1 = 1


どうやら、int型の20160101をdatetime型に暗黙的キャストをSQLServerが行っていたらしく、
キャストの失敗が原因でこのようなエラーが起きていたのだとわかりました。

正しくは 「2016-01-01」または「2016-01-01 00:00:00」と代入するのが正しいようです。
久しぶりに触って忘れていたことでした。