我正在使用 SQL Server 2008。
我有两张桌子PARTITIONTESTTABLE和PARTITIONTESTTABLESUB. PARTITIONTESTTABLESUB有一个外键PARTITIONTESTTABLE。我创建了分区,这两个表都已分区。我还从管理分区向导创建了临时表。
当我跑....
ALTER TABLE PARTITIONTESTTABLESUB SWITCH PARTITION 10 to [staging_PARTITIONTESTTABLESUB];
Run Code Online (Sandbox Code Playgroud)
...它运行成功。
但...
ALTER TABLE PARTITIONTESTTABLE SWITCH PARTITION 10 to [staging_PARTITIONTESTTABLE];
Run Code Online (Sandbox Code Playgroud)
...失败,错误:
ALTER TABLE SWITCH 语句失败。不允许 SWITCH,因为源表“Enterprise.MSH2.PARTITIONTESTTABLE”包含约束“staging_PARTITIONTESTTABLESUB_PARTITIONTESTTABLESUB_FK”的主键。
DDL:
CREATE TABLE [PARTITIONTESTTABLE](
[pkcol] [int] IDENTITY(1,1) NOT NULL,
[datacol1] [int] NULL,
[datacol2] [int] NULL,
[datacol3] [varchar](50) NULL,
[partitioncol] [datetime] NOT NULL,
CONSTRAINT [PK_PARTITIONTESTTABLE] PRIMARY KEY CLUSTERED
(
[pkcol] ASC,
[partitioncol] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, …Run Code Online (Sandbox Code Playgroud)