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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 742|回复: 0

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

[复制链接]
发表于 2017-5-4 11:21:49 | 显示全部楼层 |阅读模式
我们知道,有时想创建一个表的复制,我们使用
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>

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2021-4-19 14:44 , Processed in 0.141591 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表