如果 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])