【问题标题】:Create empty SQL table from existing table in Azure从 Azure 中的现有表创建空 SQL 表
【发布时间】:2014-02-13 22:17:07
【问题描述】:

我想通过复制现有表的结构而不复制任何记录来创建一个新的空表。我正在使用 SQL Azure。

尝试 1:

SELECT * INTO newTable
FROM oldTable
WHERE 1 = 0

返回错误:

Msg 40510, Level 16, State 1, Line 1
Statement 'SELECT INTO' is not supported in this version of SQL Server.

尝试 2:

CREATE TABLE newTable
AS (SELECT * FROM oldTable WHERE 1=0)

返回错误:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '('.

第三次幸运?我是否错过了一些明显的东西,我没有想法。

更新: 最后我执行了这个过程:

  • 在 Access mdb 中添加 Azure 表作为链接表
  • 仅将结构复制到本地表
  • 重命名表
  • 使用“SQL Server 导入和导出向导”导出到 Azure

【问题讨论】:

    标签: sql azure


    【解决方案1】:

    SQL Azure 要求所有表都有聚集索引,因此您不能简单地克隆表结构而不创建索引。

    【讨论】:

      【解决方案2】:

      正如您所见,Azure SQL 数据库不支持 SELECT INTO。如果目标表已经存在,那么您可以使用 INSERT INTO 来填充它。参见 Kevin Yu 的帖子:http://blog.kevinyu.org/2012/06/workaround-for-select-into-in-sql-azure.html

      我认为为什么不支持 SELECT INTO 的问题是因为 SQL Azure 中的每个表都必须有一个聚集索引。 SELECT INTO 语法会生成一个没有聚集索引的表。

      这是一个开放的连接问题:http://connect.microsoft.com/SQLServer/feedback/details/776409/add-select-into-to-sql-azure

      如果不首先创建定义了聚集索引的目标表,我认为没有什么好方法可以做到这一点。

      【讨论】:

        猜你喜欢
        • 2019-09-02
        • 2022-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-03
        • 2020-09-07
        • 2017-06-02
        相关资源
        最近更新 更多