2015-02-27 18 views
6

Chúng tôi đang sử dụng hai lược đồ trong dự án của chúng tôi (dbo + kal).SQL71501 - Cách loại bỏ lỗi này?

Khi chúng tôi đang cố tạo chế độ xem với câu lệnh SQL sau, Visual Studio hiển thị dưới dạng lỗi trong danh sách lỗi.

CREATE VIEW [dbo].[RechenketteFuerAbkommenOderLieferantenView] 
AS 
    SELECT 
     r.Id as RechenkettenId, 
     r.AbkommenId, 
     r.LieferantId, 
     rTerm.GueltigVon, 
     rTerm.GueltigBis, 
     rs.Bezeichnung, 
     rs.As400Name 
    FROM 
     [kal].[Rechenkette] r 
    JOIN 
     [kal].[RechenketteTerm] rTerm ON rTerm.RechenketteId = r.Id 
    JOIN 
     [kal].[Basisrechenkette] br ON rTerm.BasisrechenketteId = br.Id 
    JOIN 
     [kal].[Rechenkettenschema] rs ON rs.Id = br.Id 
    WHERE 
     r.RechenkettenTyp = 0 

Các thông báo lỗi như sau:

SQL71501: Tính toán cột:. [Dbo] [RechenketteFuerAbkommenOderLieferantenView] [AbkommenId] chứa một tham chiếu chưa được giải quyết đến một đối tượng.. Đối tượng không tồn tại hoặc tham chiếu không rõ ràng vì nó có thể tham chiếu đến bất kỳ đối tượng nào sau đây:
[kal]. [Basisrechenkette]. [R] :: [AbkommenId], [kal]. [Rechenkette]. [ AbkommenId], [kal]. [Rechenkette]. [R] :: [AbkommenId], [kal]. [Rechenkettenschema]. [R] :: [AbkommenId] hoặc [kal]. [RechenketteTerm]. [R] :: [AbkommenId].

Xuất bản chế độ xem và hoạt động tốt, nhưng thật khó chịu khi thấy thông báo lỗi tất cả thời gian khi xây dựng dự án của chúng tôi có tất cả các lỗi nghiêm trọng bị mất trong các lỗi sql đó.

Bạn có bất kỳ ý tưởng nào không, vấn đề có thể là gì?

+0

Thay đổi tên 'Bí danh' từ' r.Id thành RechenkettenId, 'thành' r.Id thành someId, ' –

+0

Không có gì thay đổi – Jannik

Trả lời

2

Tôi vừa tìm ra giải pháp. Mặc dù tôi không thể đọc của bạn (những gì dường như là Đức), đủ để biết nếu bạn đang đề cập đến quan điểm hệ thống, nếu như vậy, một tài liệu tham khảo cơ sở dữ liệu để làm chủ phải được cung cấp. Nếu không, thêm bất kỳ tài liệu tham khảo cơ sở dữ liệu cần thiết khác nên giải quyết vấn đề.

này được mô tả vào đây để xem hệ thống: Resolve reference to object information schema tables

for other database references.

thông tin bổ sung được cung cấp ở đây: Resolving ambiguous references in SSDT project for SQL Server

+0

Cảm ơn bạn đã trả lời muộn. Tôi chuyển đến một công ty khác, tiếc là tôi không thể thử nghiệm nó nữa. – Jannik

2

Chúng tôi có một dự án có chứa một cái nhìn tham chiếu đến một hàm bảng có giá trị trong cơ sở dữ liệu khác. Sau khi thêm tham chiếu cơ sở dữ liệu được yêu cầu để giải quyết các trường được sử dụng từ cơ sở dữ liệu từ xa, chúng tôi vẫn nhận được lỗi này. Tôi thấy rằng hàm bảng có giá trị được xác định bằng cách sử dụng "SELECT * FROM ..." là mã cũ được tạo bởi một người không quen thuộc với các phương pháp mã hóa tốt. Tôi đã thay thế phần "*" bằng các trường liệt kê cần thiết và biên dịch hàm đó, sau đó tạo lại dacpac cho cơ sở dữ liệu đó để nắm bắt lược đồ kết quả và kết hợp dacpac mới làm tham chiếu cơ sở dữ liệu. Woo Hoo! các tài liệu tham khảo mơ hồ biến mất! Có vẻ như động cơ SSDT không thể (hoặc không) luôn có khả năng tiếp cận vào ruột của dacpac được tham chiếu để quay trở lại với tất cả các trường. Để chắc chắn, các dự án tôi làm việc thường khá lớn, vì vậy tôi nghĩ sẽ rất hợp lý khi cung cấp cho các công cụ tất cả sự trợ giúp bạn có thể khi yêu cầu họ xác thực mã của bạn.

Các vấn đề liên quan