2010-06-01 26 views
5

Czy ktoś może mi pomóc?Jak analizować pliki SQL za pomocą C#?

Mam kilka plików .sql. Chcę analizować (sprawdzać poprawność) te pliki przed ich wykonaniem na serwerze.

Mam wiele witryn internetowych, które analizują kod. Ale chcę przeanalizować kod przy użyciu C#.

Więc proszę, poprowadzisz. Jeśli istnieje jakieś narzędzie, dll muszę użyć.

Chcę tylko do analizowania pliku i nie wykonać to

+0

Czy naprawdę chcesz całkowicie przeanalizować plik SQL? Lub po prostu sprawdź, czy jest prawidłowy SQL, który nie będzie błąd po uruchomieniu? – BradC

+1

@BradC - lub przynajmniej nie wyrzuci błędu * parse * po wykonaniu; p –

+0

Czy chcesz sprawdzić poprawność składni sql? – Arseny

Odpowiedz

13

Jednym ze sposobów jest wykonanie go na serwerze, z wyjątkiem SET PARSEONLY ON (tak, że jest on przetwarzany, ale nie jest wykonywany): Myślę, że tak właśnie działa MS Query Analyzer.

0

Visual Studio używane mieć coś o nazwie Visual Studio dla profesjonalistów baz danych. Został później przeniesiony do Team Developer.

W każdym razie "skompilowali" kod SQL, wykonując go w bazie danych i testując wyniki. Wyobrażam sobie, że tak właśnie sprawdzają, że to działa, to prawdopodobnie najlepszy sposób, żebyś to zrobił.

3

Można mieć procedury, które mogą dostać się do zapytania jako wejście i
na stronie SQL Server może masz SET PARSEONLY ON oświadczenie, a następnie „Uruchom” zapytaniu . Zapytanie nie zostanie faktycznie uruchomione, ale wszelkie błędy zostaną zgłoszone.

1

Powinieneś zadać sobie pytanie dwa razy (a może nawet trzy razy :-)), jeśli naprawdę chcesz to zrobić.

Nawet jeśli znajdziesz rozwiązanie, które wydaje się działać dla plików, które masz teraz, prawdopodobnie będą różne rodzaje narożnych przypadków, które nie zostaną pokryte. Sugestia, że ​​silnik lokalnego bazy danych go analizuje, jest w pewnym sensie wykonalna, ale wciąż może być wiele drobnych różnic w składni między tym, co robisz lokalnie, a tym, co dzieje się na serwerze.

Moja rada to pozwolić serwerowi przeanalizować i zweryfikować - to w zasadzie jedyny sposób, aby być naprawdę pewnym.

1

Parowniki SQL są używane do budowania wielu narzędzi opartych na języku SQL.

Jednym z takich narzędzi jest formater Formatter, który analizuje tekst źródłowy i ładnie formuje wynik. Jeśli formater nie przeanalizuje źródła, generuje niezerowy status procesu.

Można po prostu "sformatować" plik; jeśli formatowanie nie powiedzie się, nie jest to prawna składnia.

Te formatery są produktami komercyjnymi.

EDYCJA Sierpień 2011: Parser SQL DMS obsługuje teraz pełną gramatykę standardu SQL 2011.

Powiązane problemy