当前位置: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语句为现有表添加约束条件
标签: