从Azure中的现有表创建空SQL表

时间:2014-02-13 12:15:31

标签: sql azure

我想通过复制现有表的结构而不复制任何记录来创建一个新的空表。我正在使用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

2 个答案:

答案 0 :(得分:2)

SQL Azure要求所有表都具有聚簇索引,因此您无法在不创建索引的情况下简单地克隆表结构。

答案 1 :(得分:1)

正如您所见,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

如果没有首先创建定义了聚簇索引的目标表,我不相信有一个好方法可以做到这一点。