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的频率,以及我需要在这个区域中处理多少个数据库,这是非常笨拙的.
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)
要轻松编写脚本表,您可以编写自己的脚本或使用此问题的答案之一:
更新: 正如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/
| 归档时间: |
|
| 查看次数: |
7464 次 |
| 最近记录: |