Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да създадете ограничение за проверка на една колона в SQL Server - SQL Server / TSQL урок, част 83

Сценарий :

Вие работите като разработчик на SQL Sever, подготвяте скриптове за създаване на таблици в базата данни. Като част от тези скриптове трябва да създадете Check Constraints, но искате да следвате фирмените стандарти за именуване за Check Constraints. Как бихте добавили Check Constraint Name във вашите скриптове.

Решение:

SQL Server автоматично дава име на Check Constraint, ако не го предоставим. Нека изпълним скрипта по-долу и да видим какво име SQL Server присвоява на Check Constraint, когато не предоставяме името. В примера по-долу създаваме Check Constraint за 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
 
 
Как да създадете ограничение за проверка в SQL Server с име по подразбиране
 
Да приемем, че името на SQL Server, предоставено на Check Constraint, не е според стандартите на нашата компания. Нашите стандарти казват, че ограничението за проверка трябва да следва модела по-долу
Започнете с Chk_SchemaName_TableName_ColumnName_CheckConstraintDescription. За да добавите ограничение за проверка, вашият синтаксис ще бъде
Constraint Constraint_Name Check LogicForCheckConstraint.

 --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]%')
)
 
 Изпълнете заявката за избор в системния изглед, за да получите информация за проверка на ограничението. Предлагам да създавате обекти с някаква конвенция за именуване или стандарти, вместо да оставяте sql сървъра да решава името за вашите обекти.
Как да създадете ограничение за проверка, като предоставите име според стандартите на вашата компания в SQL Server


Видео демонстрация:Как да създадете ограничение за проверка чрез използване на конвенция за именуване в SQL Server

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ADO.net SqlTransaction подобрява производителността

  2. Какво представлява SQL Server Management Studio (SSMS)?

  3. Има ли начин да получите списък с всички текущи временни таблици в SQL Server?

  4. Вътрешни елементи на седемте сорта SQL сървъри – част 1

  5. Как да отпечатате VARCHAR(MAX) с помощта на Print Statement?