1

対CONSTRAINTを追加します。SQL Serverでチェック制約を追加します。私は私がチェック制約に修飾名を与えるたいSQL Server 2008の</p> <p>内の任意のテーブルの列のチェック制約を使用したいのADD CHECK

私はそれを作成する方法についていくつかの構文のバージョンを見てきました:

ALTER TABLE [dbo].[Roles2016.UsersCRM] WITH CHECK 
    ADD CHECK (([Estado]=(4) OR [Estado]=(3) OR [Estado]=(2) OR [Estado]=(1))) 

ALTER TABLE [dbo].[Roles2016.UsersCRM] WITH CHECK 
    ADD CONSTRAINT [CK_UsuariosCRM_Estado] 
     CHECK (([Estado]=(4) OR [Estado]=(3) OR [Estado]=(2) OR [Estado]=(1))) 

チェック制約のための違いADD CHECKADD CONSTRAINTは何ですか?

+5

2番目の構文では、制約の名前を付けることができます。最初はありません。制約の名前を付けることをお勧めします。 –

答えて

3

ことは可能ですが、名前のない制約を追加する非常に悪い習慣

CREATE TABLE tbl(SomeColumn VARCHAR(10) DEFAULT('test')) 

は、ランダムな名前でCONSTRAINTを作成します。これをよりよく使用する

CREATE TABLE tbl(SomeColumn VARCHAR(10) CONSTRAINT DF_YourTable_SomeColumm DEFAULT('test')) 

これは同じことを行いますが、望むように制約の名前を付けます。

デプロイされた環境でアップグレードスクリプトを実行すると、が非常に重要です。です。ただ想像してください。後で制約を変更したいのですが、この制約の名前は顧客のマシン上ですべて異なっています...それは本当の痛みです!

So:必ず名前を付けてください。