Ошибка означает, что у вас есть данные в других таблицах, которые ссылаются на данные, которые вы пытаетесь удалить.
Вам потребуется либо удалить и заново создать ограничения, либо удалить данные, на которые ссылается внешний ключ.
Предположим, у вас есть следующие таблицы
dbo.Students
(
StudentId
StudentName
StudentTypeId
)
dbo.StudentTypes
(
StudentTypeId
StudentType
)
Предположим, существует ограничение внешнего ключа между столбцом StudentTypeId
в StudentTypes
и столбцом StudentTypeId
в Students
Если вы попытаетесь удалить все данные в StudentTypes
, произойдет ошибка, поскольку столбец StudentTypeId
в Students
ссылается на данные в таблице StudentTypes
.
РЕДАКТИРОВАТЬ:
DELETE
и TRUNCATE
по сути делают одно и то же.Единственное отличие состоит в том, что TRUNCATE
не сохраняет изменения в файле журнала.Также вы не можете использовать предложение WHERE
с TRUNCATE
AS, почему вы можете запускать это в SSMS, но не через свое приложение.Я действительно не могу видеть, что это происходит.Ограничение FK будет по-прежнему выдавать ошибку независимо от того, откуда произошла транзакция.