S Q L S e r v e r习题及答
案
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
1. 有个用户的计算机不能连接到中心机房的SQL Server 2000上。你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQL Server 2000。下面的哪些工具有助于你诊断和解决该问题(多选)A. Enterprise Manager
B. Server Network Utility
C. Profiler
D. Query Analyzer
E. Client Network Utility
答:B和E
2. 你在SQL Server 2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT * FROM CustInfo
A. Model
B. Tempdb
C. Msdb
D. Master
E. Pubs
答:A、C、E
3. 你正在使用SQL Server 2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQL Server 2000中启用了网络加密功能。请问该功能在哪一层被实现?
A. TCP/IP协议软件
B.超级套接字层
C.开放式数据服务
D.关系引擎
E.存储引擎
答:B
4. 你正在使用SQL Server 2000开发超市收银系统。在客户端编写软件时使用SQL语句“SELECT * FROM Products”来查询商品的信息,但是不小心把Products输入成Product。请问该错误在哪一层被发现?
A.客户端的数据库API
B.客户端的NET-LIBRARY
C.服务器端的开放式数据服务
D.服务器端的关系引擎
E.服务器端的存储引擎
答:D
5. 数据库操作时服务器突然掉电,当重新启动后,您如何恢复已经完成但还没把数据写入硬盘的事务,以及正在进行一半的事务?
A、运行ROLL FORWARD ALL TRANSACTION
B、不用。SQL Server 2000自动恢复,即通过日志恢复所有已经完成但还没把数据写入硬盘的事务到硬盘,并撤消正在进行一半的事务。
C、先备份事务日志,再将数据库恢复到上一完全数据库备份,再把刚备份的事务日志恢复到当前数据库的日志中。
D、没有办法。只能使用数据库以前的备份。
答:B
6. 你使用SQL Server 2000数据库开发一个小型的酒店管理系统。你用下面的语句创建数据库:
CREATE DATABASE JiuDian
ON PRIMARY
( NAME = JiuDianData,
FILENAME = 'c:\cyj\JiuDianData.mdf',
SIZE = 100,
MAXSIZE = 200,
FILEGROWTH = 10 )
LOG ON
( NAME = JiuDianLog,
FILENAME = 'c:\cyj\JiuDianLog',
SIZE =50,
MAXSIZE =100,
FILEGROWTH = 10
现在酒店营业的数据为150MB。对其中50%的数据进行备份并删除后,要把数据库立即缩小为初始的大小(即100 MB)。下面哪条语句能够实现该功能?
A. DBCC SHRINKFILE( JiuDianData, NOTRUNCATE )
B. DBCC SHRINKDATABASE( JiuDianData, 25 )
C. DBCC SHRINKDATABASE(JiuDianData, 100 )
D. ALTER DATABASE JiuDianData SET AUTO_SHRINK ON
答:B
7. 在学生成绩表tblCourseScore中的列Score用来存放某学生学习某课程的考试成绩(0~100分,没有小数), 用下面的哪种类型最节省空间?
A、int
B、smallint
C、tinyint
D、decimal(3,0)
答:C
8. 你在SQL Server 2000数据库中建立了一些相似的表,其格式如下,只是表名和列名不同。
C
REATE TABLE OneTable
( pk uniqueidentifier,
name varchar(20),
other uniqueidentifier,
)
应用程序开发人员对这些表编写了一些相似的查询。因为列的名称相似,他们喜欢用ROWGUIDCOL关键字来引用列名。当执行这些查询时,会产生什么结果?
A、SQL Server 2000会返回错误,因为表包含两个类型为uniqueidentifier的列;
B、当执行的查询在引用ROWGUIDCOL关键字的时候,SQL Server 2000会返回错误;
C、SQL Server 2000会返回错误,因为列pk没有声明为关键字;
D、SQL Server 2000不会产生错误。
答:B
9. 定单表Orders的列OrderID的类型是小整型(smallint),根据业务的发展需要改为整型(integer),应该使用下面的哪条语句?
A、ALTER COLUMN OrderID integer FROM Orders
B、ALTER TABLE Orders ( OrderID integer )
C、ALTER TABLE Orders ALTER COLUMN OrderID integer
D、ALTER COLUMN Orders.OrderID integer
答:C
10. 在学生管理系统中使用下面的学生信息表:
CREATE TABLE 学生信息表
( 学号 char(8) PRIMARY KEY NONCLUSTERED,
姓名 varchar(20) NOT NULL,
身份证号码 varchar(30) NOT NULL,
出生日期 datetime NULL,
系号 char(2) NOT NULL
)
学生的身份证号码是唯一的。你想把每个学生的信息按照身份证号码的顺序物理地存放在数据库文件中。下面的哪个约束可以完成改任务?
A、UNIQUE CLUSTERED
B、UNIQUE NONCLUSTERED
C、PRIMARY KEY CLUSTERED
D、PRIMARY KEY NONCLUSTERED
答:A
11. 在SQL Server 2000中创建一些新对象的脚本如下:
CREATE TABLE Publishers
( publisher_id int PRIMARY KEY,
publisher_name varchar(100) not null
)
CREATE TABLE Books
( book_id int CONSTRAINT PK_title_id PRIMARY KEY,
book_title nvarchar(2000) not null,
book_content ntext not null,
field01 varchar(100) unique,
field02 char(1000),
field03 char(1000),
field04 char(1000),
publisher_id int not null,
CONSTRAINT FK_publisher_id
FOREIGN KEY (publisher_id) REFERENCES Publishers(publisher_id)
)
CREATE TABLE ThirdTable
( third_id int IDENTITY(45,17) PRIMARY KEY,
field01 varchar(100) FOREIGN KEY REFERENCES Books(field01),
)
从下面中选择正确的说法。
A. 上面的创建语句没有错误;
B. 表Books的一行的长度超过允许的最大长度;
C. 表ThirdTable的列的third_id的种子要能被增量整除;
D. 列field01的类型是varchar,不能作为外部关键字;
E. 不能直接在表Books的列book_id上使用CONSTRAINT关键字,使用CONSTRAINT关键字要象该表的CONSTRAINT FK_publisher_id一样另起一行。答:A
12. 在登记学生成绩时要保证列Score的值在0到100之间,下面的方法中哪种最简单?
A. 编写一个存储过程,管理插入和检查数值,不允许直接插入;
B. 生成用户自定义类型type_Score和规则,将规则与数据类型type_Score相关联,然后设置列Score的数据类型类型为type_Score;
C. 编写一个触发器来检查Score的值,如果不在0和100之间,则撤消插入;
D. 在Score列增加检查限制。
答:D
13. 一个脚本有如下代码:
CREATE TABLE Employees --第一条语句
( EmployeeID int IDENTITY(10001,1) PRIMARY KEY,
Name varchar(40) not null,
Birthday datetime null
)
SELECT * FROM Employees --第二条语句
CREATE DEFAULT phone_no_default --第三条语句
AS '(000)000-0000'
CREATE TABLE Customers --第四条语句
( CustomerID int IDENTITY(100001,1) PRIMARY KEY,
Name varchar(40) not null,
Phone varchar(20) null
)
EXECUTE sp_bindefault phone_no_default, 'Customers.Phone' --第五条语句
在执行过程中会因为缺少GO语句而出现错误,下面哪些是必须的?
A. 在“第一条语句”和“第二条语句”之间添加GO语句
B. 在“第二条语句”和“第三条语句”之间添加GO语句
C. 在“第三条语句”和“第四条语句”之间添加GO语句
D. 在“第四条语句”和“第五条语句”之间添加GO语句
答:B, C
14. 您需要显示从2001年1月1日到2001年12月31日雇佣的所有职员的姓名和雇佣日期。职员信息表tblEmployees包含列Name和列HireDate,下面哪些语句能完成该功能?
A、SELECT Name, HireDate FROM tblEmployees
B、 SELECT Name, HireDate FROM tblEmployees
WHERE HireDate =’2001-01-01’ OR ‘2001-12-31’
C、 SELECT Name, HireDate FROM tblEmployees
WHERE HireDate B ETWEEN ’2000-12-31’ AND ‘2002-01-01’
D、 SELECT Name, HireDate FROM tblEmployees
WHERE HireDate DATEPART(yy, HireDate) =2001
答:D