我想从 SQL Server 2012 数据库中的表中删除分区。表有主键,但分区列不是主键。我还想保持数据结构和模式完好无损。
我试过:
select *
into [dbo].[new_Non_partitioned_Table]
from [dbo].[partitioned_table]
Run Code Online (Sandbox Code Playgroud)
然后我删除了分区表并重命名了新表。但是,它导致我丢失了数据结构和一些迫使我放弃约束的依赖项 (FK)。这是用于生产和数据丢失不是一种选择。
有没有更好的方法从现有表中删除分区?
我正在使用 php 的 mssql 扩展(在 linux 上)向 SQL Server 发送查询。
我有一个表格,可以相当快地建立一次性数据。我花了比预期更长的时间来构建一个 cron 每小时清理这些数据,所以它已经积累了几个月来超过 1G 的数据,不确定有多少行,但可能超过 100 万。
因此,我对超过 1 天的任何内容运行了删除查询。
DELETE FROM CacheForms WHERE TimeStamp < 1503454349
Run Code Online (Sandbox Code Playgroud)
但是在 60 秒后查询超时并且脚本失败。(更新同样发生在 10 分钟。)
当这个删除查询超时(一个 php 概念)数据库会发生什么?数据库是否从事务日志中恢复已删除的数据?还是数据真的被删除了?或者查询是否在 sql server 中继续运行?