логика того, что вы делаете, не совсем верна. на основании вашего заявления:
"Я пытаюсь запустить там, где я запрашиваю таблицу sysobjects, чтобы проверить, существует ли объект, прежде чем я его урону и создаю его снова"
Вы должны просто удалить, а затем создать. Этот способ обычно лучше, потому что он гарантирует, что таблица будет обновлена. если таблица существует и у вас есть изменения, вы, вероятно, не получаете то, что хотите.
Непосредственной проблемой, с которой вы столкнулись, является предполагаемое владение БД, которое не соответствовало между запусками.
на основе ваших разъяснений ниже - вот что вы можете сделать:
ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ * ОТ СИСТЕМНЫХ ОБЪЕКТОВ, ГДЕ object_id = OBJECT_ID (N '[dbo]. [XXXX]') И введите (N'U '))
DROP TABLE [dbo]. [XXXX]
GO
CREATE TABLE [dbo]. [XXXX (...
GO
Вы можете запускать это снова и снова ...