2010-06-01 15 views
5

Có ai vui lòng giúp tôi không?Làm thế nào để phân tích các tệp SQL bằng C#?

Tôi đang có nhiều tệp .sql. Tôi muốn phân tích cú pháp (xác thực) các tệp đó trước khi thực thi chúng trên máy chủ.

Tôi có nhiều trang web trực tuyến phân tích cú pháp mã. Nhưng tôi muốn phân tích mã bằng cách sử dụng C#.

Vì vậy, bạn có thể hướng dẫn. Nếu có bất kỳ công cụ, dll tôi cần phải sử dụng.

Tôi chỉ muốn phân tích các tập tin và không thực hiện nó

+0

Bạn có thực sự muốn phân tích cú pháp tệp SQL đầy đủ không? Hoặc chỉ cần xác minh xem đó là SQL hợp lệ sẽ không lỗi khi thực hiện? – BradC

+1

@BradC - hoặc ít nhất, sẽ không ném lỗi * phân tích cú pháp * khi được thực thi; p –

+0

bạn có muốn xác thực cú pháp của sql không? – Arseny

Trả lời

13

Cách để thực hiện là thực thi trên máy chủ, ngoại trừ SET PARSEONLY ON (để phân tích cú pháp nhưng không được thực thi): Tôi nghĩ đó là cách Trình phân tích truy vấn MS thực hiện điều đó.

1

Antler Parser Generator là đặt cược tốt nhất của bạn. Có thể có ngữ pháp được xác định trước cho phiên bản SQL bạn muốn phân tích cú pháp.

0

Visual Studio sử dụng để có một cái gì đó được gọi là Visual Studio cho cơ sở dữ liệu chuyên nghiệp. Sau đó nó được đưa vào Team Developer.

Dù sao, họ "biên dịch" mã sql bằng cách thực hiện nó trong cơ sở dữ liệu và kiểm tra kết quả. Tôi tưởng tượng nếu đó là cách họ xác minh nó hoạt động, đó có lẽ là cách tốt nhất để bạn làm tốt.

3

Bạn có thể có thủ tục mà có thể nhận được các truy vấn như đầu vào và
ở bên SQL Server bạn có thể có một tuyên bố SET PARSEONLY ON và sau đó "chạy" truy vấn . Truy vấn sẽ không thực sự chạy, nhưng mọi lỗi sẽ được báo cáo.

1

Bạn nên tự hỏi mình hai lần (hoặc thậm chí ba lần :-)) nếu bạn thực sự muốn thực hiện việc này.

Thậm chí nếu bạn tìm thấy giải pháp, có vẻ như hoạt động cho các tệp bạn hiện có, có thể sẽ có tất cả các loại trường hợp góc không được đề cập đến. Đề xuất của việc có một cơ sở dữ liệu phân tích cú pháp cơ sở dữ liệu, có thể hoạt động tốt, nhưng vẫn có nhiều khác biệt cú pháp nhỏ giữa những gì bạn làm tại địa phương và những gì xảy ra trên máy chủ.

Lời khuyên của tôi là để cho máy chủ phân tích cú pháp và xác thực nó - về cơ bản đó là cách duy nhất để thực sự chắc chắn.

1

DMS Software Reengineering Toolkit có trình phân tích cú pháp SQL, được sử dụng để xây dựng nhiều công cụ dựa trên SQL.

Một công cụ như vậy là một định dạng Formatter, phân tích cú pháp văn bản nguồn và định dạng kết quả độc đáo. Nếu trình định dạng không phân tích cú pháp nguồn, nó sẽ tạo ra trạng thái xử lý không đồng bộ.

Bạn có thể chỉ cần "định dạng" một tệp; nếu định dạng không thành công, nó không phải là cú pháp pháp.

Các trình định dạng này là các sản phẩm thương mại.

EDIT tháng 8 năm 2011: Trình phân tích cú pháp SQL DMS hiện xử lý ngữ pháp chuẩn SQL 2011 đầy đủ.

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