SQL Azure不支持"select into" - 还有其他方法吗?

Mic*_*l A 5 sql t-sql azure azure-sql-database

我有一个非常复杂的表格,我想在进行一些修改时暂时备份.通常,我只是做以下事情:

SELECT  *
INTO    temp_User
FROM    dbo.[User] AS u
Run Code Online (Sandbox Code Playgroud)

不幸的是我正在使用Azure,它似乎不支持:

消息40510,级别16,状态1,行2语句此版本的SQL Server不支持"SELECT INTO"语句.

有没有办法将此功能重新创建到函数中?我可以通过编写表格,创建它然后使用select语句插入数据来做到这一点,但考虑到我使用Azure的频率,以及我需要在这个区域中处理多少个数据库,这是非常笨拙的.

Har*_* CO 8

Azure需要所有表上的聚簇索引,因此SELECT INTO不受支持.

你必须:

CREATE TABLE temp_User () --fill in table structure
INSERT INTO temp_User
SELECT *
FROM dbo.[User]
Run Code Online (Sandbox Code Playgroud)

要轻松编写脚本表,您可以编写自己的脚本或使用此问题的答案之一:

脚本CREATE表SQL Server

更新: 正如Jordan B所指出的那样,V12将包括对堆的支持(没有聚集索引要求),这意味着SELECT INTO可行.目前V12 Preview可用,Microsoft当然只建议使用测试数据库进行升级.


小智 5

新的Azure数据库更新预览已解决此问题:

V12预览使您可以创建没有聚簇索引的表.此功能特别有助于它支持T-SQL SELECT ... INTO语句,该语句根据查询结果创建表.

http://azure.microsoft.com/en-us/documentation/articles/sql-database-preview-whats-new/