Ошибка SQL03120 в сценариях запуска в проекте БД 2008
Я работаю над добавлением проекта базы данных в VS2010. Я создал проект базы данных SQL 2008, направленный на сервер разработки, и, похоже, он сгенерировал все соответствующие объекты схемы. Однако все сценарии CREATE TRIGGER имеют следующую ошибку:
SQL03120: Cannot find element referenced by the supporting statement
Поиск в сообщении об ошибке не слишком много и, похоже, указывает на сценарии, использующие ALTER вместо CREATE, что здесь не так. Это пример одного из скриптов:
CREATE TRIGGER [TR_t_TABLE_TRIGGERNAME] ON [content].[t_TABLE]
FOR INSERT
AS
BEGIN
IF ( SELECT COUNT(*) FROM inserted) > 0
BEGIN
DECLARE @columnBits VARBINARY(50)
SELECT @columnBits = COLUMNS_UPDATED() | CAST (0 AS BIGINT)
INSERT INTO [history].[t_TABLE]
(
....
)
SELECT
....
FROM inserted
END
END
GO
EXECUTE sp_settriggerorder @triggername = N'[Content].[TR_t_TABLE_TRIGGER]', @order = N'last', @stmttype = N'insert';
Строка, к которой Visual Studio приписывает ошибку, является последней строкой, выполняющей системный процесс. Что выделяется для меня, так это то, что ни один из объектов не существует в схеме dbo. Таблица находится в схеме содержимого и имеет соответствующую таблицу в схеме истории. Казалось бы, квалификаторы [Content] и [History] могут быть разрешены. Не могу понять это...
1 ответ
Поскольку этот пост появляется при поиске вышеуказанной ошибки в Google: еще одна причина этой ошибки - наличие хранимой процедуры в проекте базы данных, в которой указано ALTER PROCEDURE
скорее, чем CREATE PROCEDURE
,