VS2010에서 데이터베이스 프로젝트를 추가하려고합니다. 나는 개발 서버를 가리키는 SQL 2008 DB 프로젝트를 만들었고 적절한 스키마 개체를 모두 생성 한 것으로 보인다. 많은 반환하지 않는 오류 메시지가 인터넷 검색을2008 년 DB 프로젝트의 트리거 스크립트 SQL03120에
SQL03120: Cannot find element referenced by the supporting statement
, 대신 여기에 케이스하지 않은 CREATE의 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에서 오류의 원인이되는 줄은 시스템 proc을 실행하는 마지막 줄입니다. 두드러진 점은 dbo 스키마에 존재하는 개체가 없다는 것입니다. 테이블은 내용 스키마에 있으며 기록 스키마에 일치하는 테이블이 있습니다. 그래도 [Content]와 [History] 한정자를 해석 할 수있을 것 같습니다. 이걸 알아낼 수 없어요 ...
VS2010 db 프로젝트가 SQL에서 그런 방식으로 작성되었지만 create 문에서 트리거 이름을 한정하지 않는다는 사실이 밝혀졌습니다. – Vardoj