sqlserver与oracle使用子查询创建表的区别

我们知道,有时想创建一个表的复制,我们使用

SQL> create table big_test as select * from all_objects;

表已创建。

SQL> desc big_test;

名称 是否为空? 类型

----------------------------------------- -------- --------------------------

OWNER NOT NULL VARCHAR2(30)

OBJECT_NAME NOT NULL VARCHAR2(30)

SUBOBJECT_NAME VARCHAR2(30)

OBJECT_ID NOT NULL NUMBER

DATA_OBJECT_ID NUMBER

OBJECT_TYPE VARCHAR2(19)

CREATED NOT NULL DATE

LAST_DDL_TIME NOT NULL DATE

TIMESTAMP VARCHAR2(19)

STATUS VARCHAR2(7)

TEMPORARY VARCHAR2(1)

GENERATED VARCHAR2(1)

SECONDARY VARCHAR2(1)

NAMESPACE NOT NULL NUMBER

EDITION_NAME VARCHAR2(30)

SQL> select count(*) from big_test;

COUNT(*)

----------

71651

那在sqlserver中,我们创建一个备份表 ,怎么做呢,

--我们看到sqlserver中,没有类似的create table as 这种语法

---

1> create table big_test as select * from sys.all_objects;

消息 156,级别 15,状态 1,服务器 RAC1,第 1 行

关键字 'as' 附近有语法错误。

--- 解决办法,是使用into new_table的方式来解决

3> select * into big_test from sys.all_objects;

(2006 行受影响)

1> select count(*) from big_test;

-----------

2006

(1 行受影响)

---------- ------------------------------ ---------- --------------------

重庆思庄18年3月OCP认证培训周末班正在面授,欢迎联系试听!新的OCP周末班将于4月1日开课,火热报名中!更多详情访问思庄网站咨询在线客服。

猜你喜欢

转载自my.oschina.net/u/3761438/blog/1636024