如果 table 具有依赖项,如何截断多个 table
How to truncate multiple tables if the table has dependencies
如果 table 有依赖项,我想截断多个 table。我尝试了 Whosebug
中的几个解决方案,例如Solution 1 但似乎不起作用。
table结构如下:
CREATE TABLE AEvent (
eID int NOT NULL,
startTime datetime NOT NULL,
endTime datetime NULL,
CONSTRAINT PK_A_EVENT PRIMARY KEY NONCLUSTERED (eID)
);
CREATE TABLE AEParam (
eID int NOT NULL REFERENCES AEvent(eID),
name nvarchar (446) NOT NULL,
value nvarchar (2048) NULL,
CONSTRAINT PK_A_E_PARAM PRIMARY KEY NONCLUSTERED (eID, name)
);
我尝试使用以下查询来截断但似乎不起作用。
SELECT concat('TRUNCATE TABLE ', TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME in ('AEvent','AEParam')
我找到了这个问题的答案。这就是我截断 table.
的方式
Truncate table AEParam
ALTER TABLE [dbo].[AEParam] DROP CONSTRAINT [FK_AEvent _AEParam]
Truncate table AEvent
ALTER TABLE [dbo].[AEParam] WITH NOCHECK ADD CONSTRAINT [FK_AEvent_AEParam] FOREIGN KEY([eID])
REFERENCES [dbo].[AEvent] ([eID])
如果 table 有依赖项,我想截断多个 table。我尝试了 Whosebug
中的几个解决方案,例如Solution 1 但似乎不起作用。
table结构如下:
CREATE TABLE AEvent (
eID int NOT NULL,
startTime datetime NOT NULL,
endTime datetime NULL,
CONSTRAINT PK_A_EVENT PRIMARY KEY NONCLUSTERED (eID)
);
CREATE TABLE AEParam (
eID int NOT NULL REFERENCES AEvent(eID),
name nvarchar (446) NOT NULL,
value nvarchar (2048) NULL,
CONSTRAINT PK_A_E_PARAM PRIMARY KEY NONCLUSTERED (eID, name)
);
我尝试使用以下查询来截断但似乎不起作用。
SELECT concat('TRUNCATE TABLE ', TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME in ('AEvent','AEParam')
我找到了这个问题的答案。这就是我截断 table.
的方式Truncate table AEParam
ALTER TABLE [dbo].[AEParam] DROP CONSTRAINT [FK_AEvent _AEParam]
Truncate table AEvent
ALTER TABLE [dbo].[AEParam] WITH NOCHECK ADD CONSTRAINT [FK_AEvent_AEParam] FOREIGN KEY([eID])
REFERENCES [dbo].[AEvent] ([eID])