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

2018年3月25日日曜日

SQL Serverの計算列

SQL Serverでは、テーブル作成時にカラム名の後にasで計算式を書くことで計算結果をそのカラムに自動的に設定できる。
この計算列は、計算結果が格納されるのでINSERTやUPDATEに含めることはできない。

テーブル定義

create table test
(
  id   int not null
    primary key,
  num1 int,
  num2 int,
  num3 as [num1] + [num2]
)


insertの実行

計算列のnum3は含めずに登録を行う。
insert  into test (id, num1, num2) values (1, 1, 2)

結果の確認

num3には、num1とnum2を元に計算した結果が格納されているのがわかる。
1> select * from test
2> go
id          num1        num2        num3       
----------- ----------- ----------- -----------
          1           1           2           3

(1 rows affected)

2018年1月4日木曜日

[SQL Server]sequenceのSTART WITHは必ず指定する

SQL Serverでシーケンスオブジェクトを作成した場合、START WITHは指定した型の最小値となるので、START WITHは必ず指定しよう。
指定しなかった場合は、デフォルトの型がbigintなので、START WITHは-9223372036854775808となるので、想定外な値から値が採番される…

START WITHを指定しない場合

1> create sequence test 
2> go
1> 
1> select start_value from sys.sequences where name = 'test'
2> go
start_value
-----------
-9223372036854775808


START WITHを指定した場合


1> create sequence test start with 1
2> go
1> 
1> select start_value from sys.sequences where name = 'test'
2> go
start_value
-----------
1

2013年3月26日火曜日

SQL Serverでダミー表へのアクセス

SQLServerでOracleのdual表のようなダミー表へアクセする方法。
ダミー表は、SQL関数の確認等で簡単に使うことができるので非常に便利です。

SQLServerの場合は、select句だけを定義しfrom句以降を省略することでダミー表へアクセスすることができます。

固定値を取得する場合は、select句に固定値を設定します。
1 select 1

select句に関数を列挙すると関数の呼出結果を確認することができます。
1 select sysdatetime();
2 select len('12345');