Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Azure中的现有表创建空SQL表_Sql_Azure - Fatal编程技术网

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

从Azure中的现有表创建空SQL表,sql,azure,Sql,Azure,我想通过复制现有表的结构而不复制任何记录来创建一个新的空表。我正在使用SQLAzure 尝试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. Msg 102, Level 15, State 1, Line 2

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

尝试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.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '('.
尝试2:

CREATE TABLE newTable
AS (SELECT * 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.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '('.
第三次幸运?如果我错过了一些明显的东西,我已经没有主意了

更新: 最后,我执行了以下程序:

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

正如您所看到的,Azure SQL数据库不支持SELECT INTO。如果目标表已经存在,则可以使用INSERT INTO填充它。请参阅Kevin Yu的帖子:

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

这是一个开放的连接问题,位于:


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

sqlazure要求所有表都有聚集索引,因此您不能在不创建索引的情况下简单地克隆表结构