重庆思庄Oracle、Redhat认证学习论坛

标题: sqlserver与oracle使用子查询创建表的区别 [打印本页]

作者: anysql    时间: 2017-5-4 11:21
标题: 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
SQL>

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

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

1> create table big_test as select * from sys.all_objects;
2> go
消息 156,级别 15,状态 1,服务器 RAC1,第 1 行
关键字 'as' 附近有语法错误。
1>
2>

--- 解决办法,是使用into new_table的方式来解决
3> select * into big_test from sys.all_objects;
4> go
(2006 行受影响)
1> select count(*) from big_test;
2> go
-----------
       2006
(1 行受影响)
1>






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2