SQL Server 脚本

创建数据库:

 1 --创建数据库
 2 CREATE DATABASE Accounting -- 新数据库的名称
 3 ON --主文件
 4 (
 5     NAME = 'Accounting',  --文件名
 6     FILENAME = 'F:Project FilesSQL ServerDATAAccountingData.mdf',  --文件位置
 7     SIZE = 10,  --初始大小
 8     MAXSIZE = 50,  --数据库最大大小
 9     FILEGROWTH = 5  --增量
10 )
11 LOG ON  --日志文件
12 (
13     NAME = 'AccountingLog',
14     FILENAME = 'F:Project FilesSQL ServerDATAAccountingLog.ldf',
15     SIZE = 5MB,
16     MAXSIZE = 25MB,
17     FILEGROWTH = 5MB
18 )
19 GO

查询数据库的信息:

1 --查询 数据库信息
2 EXEC sp_helpdb 'Accounting'

创建表:

 1 CREATE TABLE Customers
 2 (
 3     CustomerNo int IDENTITY NOT NULL,
 4     CustomerName varchar(30) NOT NULL,
 5     Address1 varchar(30) NOT NULL,
 6     Address2 varchar(30) NOT NULL,
 7     City varchar(20) NOT NULL,
 8     State char(2) NOT NULL,
 9     Zip varchar(10) NOT NULL,
10     Contact varchar(25) NOT NULL,
11     Phone char(15) NOT NULL,
12     FedIDNo varchar(9) NOT NULL,
13     DateInSystem date NOT NULL,  --此列以后将添加一个 CHECK 约束
14 )

查询表的信息:

EXEC sp_help Customers  --查询表的信息  使用 EXEC sp_help + 对象名,  查看相应的对象的信息

添加一个 Check 约束

1 -- 给 Customers 表的 DateInSystem 列添加一个 Check约束,因为该列的值不可能是未来的某个值
2 ALTER TABLE Customers
3     ADD CONSTRAINT CN_CustomerDataInSystem
4     CHECK (DateInSystem <= GETDATE())

执行查询:

1 EXEC sp_helpconstraint Customers

结果:

插入数据:   DateInSystem 的值 超过现在的时间,所以不能插入成功

1 --插入一个未来时间'12-31-2049',违反了CHECK约束,所以将失败
2 INSERT INTO Customers(CustomerName,Address1,Address2,City,State,Zip,Contact,Phone,FedIDNo,DateInSystem)
3 VALUES('Customer1','Address1','Address2','Mycity','NY','5555','No Contact','555','000','12-31-2049')

结果:

--创建表Orders
CREATE TABLE Orders
(
    OrderID int IDENTITY NOT NULL
        PRIMARY KEY,
    CustomerNo int NOT NULL --将此列设置为外键,该列必须在其他表中定义一个主键约束或者唯一性约束
        FOREIGN KEY REFERENCES Customers(CustomerNo),
    OrderDate date NOT NULL,
    EmployeeID int NOT NULL
)
1 --以修改表的方式, 添加 EmployeeID 为外键
2 ALTER TABLE Orders
3     ADD CONSTRAINT FK_EmployeeCreatesOrder
4     FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)

查询表的信息:

1 EXEC sp_helpconstraint Orders   --查询特定表的约束  消息中显示:没有外键引用表 'Orders',或者您没有引用表的相关权限。

结果:显示为 两个外键约束 + 一个主键约束

唯一性约束:

 1 CREATE TABLE Shippers
 2 (
 3     ShipperID int IDENTITY NOT NULL
 4         PRIMARY KEY,
 5     ShipperName varchar(30) NOT NULL,
 6     Address varchar(30) NOT NULL,
 7     City varchar(25) NOT NULL,
 8     State char(2) NOT NULL,
 9     Zip varchar(10) NOT NULL,
10     PhoneNo varchar(14) NOT NULL
11         UNIQUE   --表名 PhoneNo 需要满足唯一性约束
12 )

查询:

1 EXEC sp_helpconstraint Shippers

结果: 一个主键约束  + 一个唯一性约束(UNIQUE)

1 -- 给已存在的表Customers的DateInSystem列添加约束,使其默认值为 此刻的时间
2 ALTER TABLE Customers
3     ADD CONSTRAINT CN_CustomerDefaultDateInSystem
4     DEFAULT GETDATE() FOR DateInSystem
原文地址:https://www.cnblogs.com/TangPro/p/3260701.html