2012-01-24 2 views
2

Я работаю над добавлением проекта базы данных в VS2010. Я создал проект базы данных SQL 2008, указав на сервер разработки, и, похоже, создал все соответствующие объекты схемы. Тем не менее, все CREATE TRIGGER скрипты имеют следующее сообщение об ошибке:Ошибка SQL03120 на скриптах триггеров в 2008 году Проект DB

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] квалификаторы были бы разрешимы, хотя. Не могу понять этот ...

+0

Оказывается, что проекты VS2010 db не квалифицируют имя триггера в выражении create, несмотря на то, что он написан таким образом в SQL ... – Vardoj

ответ

0

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

Смежные вопросы