2、分离数据库是指将数据库从 SQL Server 实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。 之后,就可以使用这些文件将数据库附加到任何 SQL Server 实例,包括分离该数据库的服务器。如果存在下列任何情况,则不能分离数据库:
已复制并发布数据库。 如果进行复制,则数据库必须是未发布的。 必须通过运行 sp_replicationdboption 禁用发布后,才能分离数据库
3、附加数据库时,所有数据文件(MDF 文件和 NDF 文件)都必须可用。 如果任何数据文件的路径不同于首次创建数据库或上次附加数据库时的路径,则必须指定文件的当前路径。
实验五 表的创建
实验目的
1. 熟练掌握用Transact-SQL语句创建基本表的方法。 2. 熟练掌握基本表的特性。
3. 了解SQL Server的基本数据类型。 4. 使用SSMS管理平台创建基本表。
实验要求
1. 熟练使用企业管理器创建和删除基本表。
2. 是用查询分析器,完成用SQL语句创建和删除基本表。
实验内容
创建、删除基本表。
实验步骤
(1)打开企业管理器。
(2)选择一个创建好的数据库test,单击数据库中的表对象,然后右击窗口右侧选择新建表
(3)在这个窗体中,列名列表示表的字段名,可以在这个窗体中为字段选择数据类型和长度以及是否可以为空值。
(4)在“id”数据项上设置主键。右键单击该数据项选择“设置主键”
(5)设置自动增长后,插入输入时可以不填主键,主键可以自动生成
(6)填完正在创建表的其他信息,单击工具栏上的保存图标,输入表的名称 (7)输入表的名称后,单击确定系统会创建表
(8)在查询分析器中利用SQL语句创建表。点击“新建查询”。 (9)在查询窗体中输入创建表的T-SQL语句。
(10)单击工具栏上的图标按钮,执行分析查询,以检查输入的SQL语句是否存在语法错误。
(11)创建一个更为复杂的学生表,引入SQL Server创建表的更多特性 (12)在查询窗体中输入T-SQL语句
请你练习
1.建表练习,按下列要求通过SSMS创建表。 属性列 st_id st_nm st_sex st_birth 数据类型 长度 nVarChar 9 nVarChar 8 nVarChar 2 datetime 空值 Not Null Not Null Null Null 列约束 PK 说明 学生学号 学生姓名 学生性别 出生日期 st_score st_date st_from st_dpid st_mnt int datetime nChar nVarChar tinyint 20 2 Null Null Null Null Null 入学成绩 入学日期 学生来源 所在系编号 学生职务
2. 建表练习,按下列要求通过T-SQL语句创建表。 属性列 数据类型 长度 cs_id nVarChar 4 cs_nm nVarChar 20 cs_tm int cs_sc int 创建上表的T—SQL语句为:
空值 Not Null Not Null Null Null 列约束 PK 说明 课程编号 课程名称 课程学时 课程学分 IF OBJECT_ID('class') IS NOT NULL DROP TABLE class GO
CREATE TABLE class (
cs_id nVarChar(4) PRIMARY KEY, cs_nm nVarChar(20) Not Null, cs_tm int, cs_sc int,
) ON [PRIMARY] GO
exec sp_addextendedproperty N'MS_Description', N'课程编号', N'user', N'dbo', N'table', N'class', N'column', N'cs_id'
exec sp_addextendedproperty N'MS_Description', N'课程名称', N'user', N'dbo', N'table', N'class', N'column', N'cs_nm'
exec sp_addextendedproperty N'MS_Description', N'课程学时', N'user', N'dbo', N'table', N'class', N'column', N'cs_tm'
exec sp_addextendedproperty N'MS_Description', N'课程学分', N'user', N'dbo', N'table', N'class', N'column', N'cs_sc'
GO
3. 建表练习,按下列要求通过T-SQL语句创建表。
属性列 数据类型 长度 cs_id nVarChar 4 st_id nVarChar 9 score int sltdate datetime 创建上表的T—SQL语句为:
空值 Not Null Not Null Null Null 列约束 FK FK 说明 课程编号 学生编号 课程成绩 选课日期 IF OBJECT_ID('class_student1') IS NOT NULL DROP TABLE class_student1 GO
CREATE TABLE class_student1 (
cs_id nVarChar(4) Not Null FOREIGN KEY references class(cs_id), st_id nVarChar(9) Not Null FOREIGN KEY references student(st_id), score int,
sltdate datetime, ) GO
exec sp_addextendedproperty N'MS_Description', N'课程编号', N'user', N'dbo', N'table', N'class_student1', N'column', N'cs_id'
exec sp_addextendedproperty N'MS_Description', N'学生编号', N'user', N'dbo', N'table', N'class_student1', N'column', N'st_id'
exec sp_addextendedproperty N'MS_Description', N'课程成绩', N'user', N'dbo', N'table', N'class_student1', N'column', N'score'
exec sp_addextendedproperty N'MS_Description', N'选课日期', N'user', N'dbo', N'table', N'class_student1', N'column', N'sltdate'