当前位置:Gxlcms >
数据库问题 >
2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件
2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件
时间:2021-07-01 10:21:17
帮助过:3人阅读
PersonInfo
--使用PersonInfo数据库
GO
IF EXISTS (
SELECT * FROM sys.tables
WHERE [name] = ‘Employee ‘)
--如果存在Employee这张表
DROP TABLE Employee
--则删除
GO
IF EXISTS(
SELECT * FROM sys.tables
WHERE [name] = ‘Person‘)
--如果存在Person这张表
DROP TABLE Person
--则删除
GO
CREATE TABLE Person
--创建Person(人物)表
(
--索引
PersonID
int IDENTITY(
1,
1)
NOT NULL,
-- 创建一个整型、自增为1、标识种子为1、不允许为空的列PersonID
--名字
Name
nvarchar(
20)
NOT NULL,
--创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Name
--年龄
Age
int NOT NULL ,
--创建一个整型的列Age
--性别
Gender
bit NOT NULL,
--创建一个类型为bit的列Gender
--身份信息
[Identity] nchar(
18)
NOT NULL--创建一个非Unicode非固定长度(最多存储18个非Unicode字符)的列Identity
)
ALTER TABLE Person
ADD CONSTRAINT PK_PersonID
PRIMARY KEY(PersonID),
--为PersonID创建主键约束
CONSTRAINT CK_Age
CHECK(Age
>=18 AND Age
<=55),
--为Age创建检查约束
CONSTRAINT DF_Gender
DEFAULT(
1)
FOR Gender,
--为Gender创建默认约束
CONSTRAINT CK_Identity
CHECK (
LEN(
[Identity])
=18),
--为Identity创建检查约束
CONSTRAINT UQ_Identity
UNIQUE(
[Identity])
--为Identity创建唯一约束
GO
CREATE TABLE Employee
--创建Employee(雇员)表
(
--索引
EmployeeID
int IDENTITY(
1,
1001)
NOT NULL,
-- 创建一个整型、自增为1、标识种子为1001、不允许为空的列EmployeeID
--人物索引
PersonID
int NOT NULL ,
--职位
Post
nvarchar(
20)
NOT NULL,
--创建一个Unicode非固定长度(最多存储20个Unicode字符)的列Post
--入职时间
EntryTime
datetime --创建一个类型为datetime的列EntryTime
)
GO
ALTER TABLE Employee
ADD CONSTRAINT PK_EmployeeID
PRIMARY KEY(EmployeeID),
--为EmlpoyeeID创建主键约束
CONSTRAINT FK_PersonID
FOREIGN KEY(PersonID)
REFERENCES Person(PersonID),
--为PersonID创建外键约束
CONSTRAINT DF_EntryTime
DEFAULT getdate()
FOR EntryTime
--为EmlpoyeeID创建默认约束
GO
结果:
2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件
标签: