sql >> データベース >  >> RDS >> Sqlserver

SQLServerで単一列にチェック制約を作成する方法-SQLServer/TSQLチュートリアルパート83

    シナリオ:

    あなたはSQLサーバーの開発者として働いています。データベースにテーブルを作成するためのスクリプトを準備しています。これらのスクリプトの一部として、チェック制約を作成する必要がありますが、チェック制約に関する会社の命名基準に従う必要があります。スクリプトにチェック制約名をどのように追加しますか。

    解決策:

    SQL Serverは、提供しない場合、チェック制約に自動的に名前を付けます。以下のスクリプトを実行して、名前を指定しない場合にSQLServerがチェック制約に割り当てる名前を確認してみましょう。以下の例では、FNameにチェック制約を作成し、アルファベットのみを受け入れるようにしています。

    --Create Table with Check Constraint
    use YourDatabaseName
    go
    Create table dbo.Customer
    (
    FName VARCHAR(100) Not Null,
    LName VARCHAR(100),
    StreetAddress VARCHAR(255),
    Check (FName not like '%[^a-z]%')
    )
     
     システムビューを使用して、チェック制約に関連する情報を収集できます。
    --How to get Check Constraints in SQL Server
    SELECT
        * 
        FROM INFORMATION_SCHEMA.Check_Constraints
     
     
    デフォルトの名前でSQLServerにチェック制約を作成する方法
     
    SQLServerがCheckConstraintに提供した名前は、当社の標準に準拠していないとしましょう。私たちの標準では、チェック制約は以下のパターンに従う必要があるとされています
    Chk_SchemaName_TableName_ColumnName_CheckConstraintDescriptionから始めます。チェック制約を追加するには、構文は次のようになります。
    Constraint Constraint_NameCheckLogicForCheckConstraint。

     --Create Table with Check Constraint 
    use YourDatabaseName
    go
    Create table dbo.Customer
    (
    FName VARCHAR(100) Not Null,
    LName VARCHAR(100),
    StreetAddress VARCHAR(255),
    Constraint Chk_dbo_Customer_FName_AlphabetsOnly 
    Check  (FName not like '%[^a-z]%')
    )
     
     システムビューでselectクエリを実行して、チェック制約情報を取得します。 SQLサーバーにオブジェクトの名前を決定させるのではなく、いくつかの命名規則または標準を使用してオブジェクトを作成することをお勧めします。
    SQLServerで会社の標準に従って名前を指定してチェック制約を作成する方法


    ビデオデモ:SQLServerで命名規則を使用してチェック制約を作成する方法

    1. 重要なSQLデータベースを回復するための2020年に最適なSQL回復ツール

    2. Homebrewを使用して[メール保護]のKegインストールにPostgisをインストールするにはどうすればよいですか?

    3. マテリアライズされたパスでツリーを並べ替えますか?

    4. MySQLで初期値と自動インクリメントを設定するにはどうすればよいですか?