执行如下的SQL脚本:
ALTER TABLE customer
SET UNUSED COLUMN credit_limit;ALTER TABLE customerADD COLUMN credit_limit NUMBER(5, 2);ALTER TABLE customer
DROP UNUSED COLUMNS
/
请问,在以下有关这个脚本的陈述中,哪一个是正确的A.这个脚本中的第3个语句将失败
B.这个脚本中的第2个语句将失败
C.这个脚本将删除第一个credit_limit列并向customer表添加一个新列
D.这个脚本将删除第一个credit_limit列,但是不能向customer表添加一个新列
参考答案:C
解析: 这一题是测试对将一个表中某一列置成无用(UNUSED)命令以及删除无用列命令的理解程度。这一题是比较复杂的,但是只要理解了学习到的知识还是不难解答的。
因为Oracle把设置成无用的列当做删除列处理,所以当脚本中第一个DDL语句(ALTER TABLE customer SET UNUSED COLUMN credit_limit)执行之后,credit_limit列就相当于被删除掉了。所以随后的添加credit_limit列的DDL可以正确执行,因此选项B和D肯定都是错误的。
而最后的DDL语句(ALTER TABLE customer DROP UNUSED COLUMNS)是删除表中已经被标记为无用的列,所以这一个语句可以正确执行,因此选项A肯定也是错误的。
综上所述,答案只能是C。实际上,脚本中DDL语句就是要删除customer表中原来的credit_limit列并再重新添加一个新的credit_limit列。