SQLServer2008の新機能1

色々なページで載ってるとは思いますが、
ここでもSQLServer2008の新機能の一部を載せておきます。

DECLAREの初期値代入

SQLServer2008では、DECLAREを宣言する際に初期値を代入出来ます。

-------------------------------例-------------------------------
DECLARE @STR varchar(50) = 'test'
DECLARE @CNT int = 0

インクリメント

SQLServer2008では、インクリメントがサポートされました。
というか、今まで何で無かったんだろうって思います^^;。

-------------------------------例-------------------------------
DECLARE @CNT int = 1

WHILE @CNT <= 10
BEGIN
/*ここに必要な処理を入れます*/

SET @CNT += 1
END

複数をINSERT

SQLServer2008では、1つのINSERTステートメントで複数行挿入出来る様になりました。
使ってみると意外と便利です。

-------------------------------例-------------------------------
--テーブル名が「Table_1」
--列が「F1,F2,F3」とします。
INSERT INTO Table_1
VALUES ('AA','BB','CC'),('DDD','EE','FF'),('GG','HH','II')

新しいデータ型

SQLServer2008では、新しく4つのデータ型が追加されました。

データ型 バイト数 単 位 備 考
date 3byte 日にちのデータ型です。
日付が必要で時間の必要の無い時などに使用しましょう。
time(0〜7) 100ナノ秒 time(7)で5byte 時間のデータ型です。
100ナノ秒まで格納出来るため、datetimeより精度が高いです。
datetime2 100ナノ秒 datetime(7)で8byte 日にち・時間のデータ型です。
100ナノ秒まで格納出来るため、datetimeより精度が高いです。
datetimeoffset 100ナノ秒 datetimeoffset(7)で10byte 日にち・時間のデータ型です。
タイムゾーンのオフセットを格納できます。