Вы можете разделить ошибку на две части:
- Таблица не существует
- Нет разрешения
Так что если вы уверены, чтотаблица существует (поскольку вы говорите, что операции DELETE работают хорошо) , это проблема с правами, проверьте администратора базы данных, возможно, у вас нет разрешения на усечение данных из этой таблицы.
Обратите внимание, что для TRUNCATE TABLE требуется больше разрешений, чем для операций DELETE .На основании официальной документации :
Требуемое минимальное разрешение - ALTER для table_name.Разрешения TRUNCATE TABLE по умолчанию принадлежат владельцу таблицы, членам предопределенной роли сервера sysadmin, а также предопределенным ролям базы данных db_owner и db_ddladmin и не подлежат передаче.Однако вы можете включить оператор TRUNCATE TABLE в модуль, например хранимую процедуру, и предоставить соответствующие разрешения модулю с помощью предложения EXECUTE AS.
С другой стороны, Операция DELETE требует меньше разрешений .На основании официальной документации :
Требуются разрешения DELETE для целевой таблицы.Разрешения SELECT также требуются, если в операторе содержится предложение WHERE.
Разрешения DELETE по умолчанию для членов предопределенной роли сервера sysadmin, предопределенных ролей базы данных db_owner и db_datawriter и владельца таблицы.Члены ролей sysadmin, db_owner и db_securityadmin, а также владелец таблицы могут передавать разрешения другим пользователям.