2015-08-10 20 views
10

Với mã như thế này:Tôi có thể sử dụng SqlConnection.GetSchema để nhận thông tin từ đồng nghĩa như thế nào?

DataTable schema = conn.GetSchema(); 
DataTable tables = conn.GetSchema("Tables"); 
DataTable columns = conn.GetSchema("Columns"); 

Khá nhiều thông tin có thể được lấy về lược đồ, nhưng phiên bản siêu dữ liệu (ví dụ: GetSchema()) không trả lại bất cứ điều gì về từ đồng nghĩa.

Chúng tôi sử dụng Từ đồng nghĩa khá nhiều trong môi trường của chúng tôi. Tôi có thể lấy thông tin Schema về chúng bằng cách sử dụng GetSchema, hay tôi cần một phương pháp khác?

+1

GetSchema() là một điều rất tồi tệ báo cáo như 5% của một thông tin cơ sở dữ liệu nhất định (thậm chí nó là tworst cho DB khác hơn cho SQL Server). Tôi đề nghị bạn sử dụng 'sys.synonyms' được tài liệu ở đây: https://msdn.microsoft.com/en-us/library/ms189458.aspx –

Trả lời

3

Không có một bộ sưu tập đồ cho synonym cho SQL Server:

SQL Server Schema Collections

Hiện không có vẻ như là một cách để ghi đè lên các bộ sưu tập với .NET 3.5. Tôi chưa bao giờ làm điều này mặc dù vậy tôi không biết nếu nó thực sự hoạt động. Ý tưởng cơ bản là bạn tạo một tệp XML để xác định cách getschema xác định và truy vấn dữ liệu lược đồ. Sau đó, bạn thay đổi cấu hình ứng dụng của mình để sử dụng tệp XML này để ghi đè các bộ sưu tập có sẵn.

GetSchema Override

Có nhiều ví dụ trong các liên kết được cung cấp để thêm một bộ sưu tập Primary Keys để giản đồ. Có vẻ đầy hứa hẹn nếu bạn quyết định sử dụng getschema. Nếu không, bạn có thể tạo các hàm lược đồ của riêng mình và chỉ truy vấn sys.synonyms để nhận các từ đồng nghĩa.

+0

Cảm ơn, xin lỗi vì đã trả lời muộn. Tôi đã từng sợ điều này. Tôi đánh giá cao đề nghị nhưng đối với việc sử dụng hạn chế mà tôi đang làm điều này, tôi nghĩ rằng tôi sẽ trở lại thủ thuật cũ của việc viết một truy vấn để đọc các khung nhìn lược đồ thông tin. –

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