问题
单项选择题
请看以下两个SQL语句:
TRUNCATE TABLE dept;
DROP TABLE emp;
当运行以上这两个SQL语句时,它们的执行结果会有什么不同
A.截断(TRUNCATE)dept表将产生还原数据,而删除(DROP)表将不会产生还原数据
B.被一个外键所引用的dept表是不能被截断的,但是可以删除
C.发“DROP TABLE dept; ”语句将造成隐含提交,而发“TRUNCATE TABLE dept;”语句将不会造成隐含提交
D.截断(TRUNCATE)dept表将从表中删除全部的数据并释放没有使用的磁盘空间,但是删除(DROP)表将不会释放所有没有使用的磁盘空间
答案
参考答案:B
解析: 这一题是测试对表的截断和删除操作的理解程度。根据有关表的截断和删除的介绍——“如果一个表正在被一个外键所引用,则该表不能截断。但是对于删除表的操作并没有这一限制”,所以可以断定选项B是正确的。
因为以上两个语句都是DDL语句,所以它们都不会产生还原数据,因此选项A肯定是错误的。
同样由于以上两个语句都是DDL语句,所以它们都会造成隐含提交(自动提交),因此选项C肯定是错误的。
因为“DROP TABLEemp;”语句是DDL语句,所以在删除表之后要释放所有的资源,因此选项D肯定也是错误的。