Ошибка SQL03120 в сценариях запуска в проекте БД 2008 - PullRequest
3 голосов
/ 24 января 2012

Я работаю над добавлением проекта базы данных в 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 Ответ

1 голос
/ 12 октября 2016

Поскольку это сообщение появляется при поиске вышеуказанной ошибки в Google: еще одна причина этой ошибки - наличие хранимой процедуры в проекте базы данных, в которой указано ALTER PROCEDURE вместо CREATE PROCEDURE.

...