teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2020/12/14 16:47

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,7 @@
1
1
  CHECK制約は`CHECK(式)`です。式は**bool値**(True/False)を返さなければなりません。
2
2
  ですが、SQLserverには**boolean型**はありません。
3
3
  扱うとしたら**bit型**です。
4
- 面倒なbit型で扱う代わりに、case文での0/1結果と比較する事でbool値を返却する**式**にしているのです。
4
+ 面倒なbit型で扱う代わりに、case文での0/1結果と比較する事でbool値を返却する**式**にしているのです。
5
+
6
+ [CHECK 制約](https://docs.microsoft.com/ja-jp/sql/t-sql/statements/create-table-transact-sql?view=sql-server-ver15#check-constraints)
7
+ > **検索条件はブール式によって評価する必要があり**、他のテーブルを参照することはできません。

2

推敲

2020/12/14 16:47

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,4 @@
1
1
  CHECK制約は`CHECK(式)`です。式は**bool値**(True/False)を返さなければなりません。
2
- ですが、SQLserverには**boolean型**はありません。※扱うとしたら**bit型**です。
2
+ ですが、SQLserverには**boolean型**はありません。
3
+ 扱うとしたら**bit型**です。
3
- で、case文での0/1結果と比較する事でbool値を返却する**式**にしているのです。
4
+ 面倒bit型扱う代わりに、case文での0/1結果と比較する事でbool値を返却する**式**にしているのです。

1

推敲

2020/12/13 16:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,3 +1,3 @@
1
- CHECK制約は`CHECK(****)`です。式は**bool値**(True/False)を返さなければなりません。
1
+ CHECK制約は`CHECK(式)`です。式は**bool値**(True/False)を返さなければなりません。
2
2
  ですが、SQLserverには**boolean型**はありません。※扱うとしたら**bit型**です。
3
3
  なので、case文での0/1結果と比較する事でbool値を返却する**式**にしているのです。