シナリオ:
あなたは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で命名規則を使用してチェック制約を作成する方法