最近面试碰到一个SQL Server语句选择题:
创建一个名为“Customers”的新表,同时要求新表中包含表“clients”的所有记录,sql语句是()。(选择一项)
a)Select * into customers from clients
b)Select into customers from clients
c)Insert into customers select * from clients
d)Insert customers select * from clients
我开始选择的是C,但是后来查询了一下,才知道正确答案应该是A。
原因是:
c)要求目标表“Customers”必须存在,并且由于目标表“Customers”已经存在,所以我们除了插入源表“clients”的字段外,还可以插入常量,如:“Insert into customers select ID,Name,'342501XXXXXXXXXXXX' from clients” ('342501XXXXXXXXXXXX'是常量,非clients的字段);
a)要求目标表“Customers”不存在,因为在插入时会自动创建表“Customers”,并将“clients”中指定字段数据复制到“Customers”中。