Partie

A batch is a group of one or more Transact-SQL statements sent at the same time from an application to SQL Server for execution.SQL Server compiles the statements of a batch into a single executable unit, called an execution plan.Instrukcje w realizacji planu są następnie jeden wykonywany po czas.

Każdy Transact-SQL instrukcja powinno być zakończone średnikiem.This requirement is not enforced, but the ability to end a statement without a semicolon is deprecated and may be removed in a future version of Microsoft SQL Server.

Błąd kompilacji, takie jak błąd składni uniemożliwia opracowanie planu wykonania.Dlatego są wykonywane nie instrukcje w partia.

Uruchom -czas błąd, takie jak Przepełnienie arytmetyczne lub naruszenie więzów ma jedną z następujących efektów:

  • Uruchamianie większości -czas błędów zatrzymania aktualne oświadczenie i sprawozdań, które po nim następują w partia.

  • Niektóre działania -czas błędy, takie jak ograniczenie naruszenia zatrzymać tylko bieżącej instrukcja.Wykonywane są wszystkie pozostałe instrukcje w partia.

Instrukcje, które są wykonywane przed oświadczenie, że napotkał Uruchom -czas nie dotyczy błąd.Jedynym wyjątkiem jest błąd powoduje, że można wycofać transakcji, gdy partia jest w transakcji.W tym przypadek modyfikacje nieprzydzielonych dane wprowadzone przed uruchomienie -czas błędu są przywracane.

Załóżmy, że istnieją 10 instrukcji w partia.Piąty instrukcja zawiera błąd składni, wykonywane są nie instrukcje w partia.Jeśli partia jest skompilowany, a następnie druga instrukcja nie uruchomionej, wyniki pierwszej instrukcji nie są zagrożone, ponieważ została już wykonana.

SQL Serverzawiera instrukcja -poziom ponowną kompilację.Oznacza to, że jeśli oświadczenie wyzwala ponowną kompilację, tylko w tej instrukcja są ponownie kompilowane, a nie całej partia.To zachowanie różni się od SQL Server 2000.Rozważmy następujący przykład zawierającą CREATE TABLE instrukcja i cztery INSERT sprawozdania w tej samej partia.

CREATE TABLE dbo.t3(a int) ;
INSERT INTO dbo.t3 VALUES (1) ;
INSERT INTO dbo.t3 VALUES (1,1) ;
INSERT INTO dbo.t3 VALUES (3) ;
GO

SELECT * FROM dbo.t3 ;

Po pierwsze partia jest kompilowana.CREATE TABLE instrukcja jest skompilowany, ale ponieważ tabela dbo.t3 jeszcze nie istnieje, INSERT instrukcja nie są kompilowane.

Po drugie, rozpoczyna partia wykonać.Tabela jest tworzona.Pierwszy INSERT jest skompilowany i następnie niezwłocznie wykonana.Tabela ma teraz jeden wiersz.Następnie, drugi INSERT instrukcja jest kompilowana.Kompilacja nie powiedzie się oraz partia jest zakończony.SELECT Instrukcja zwraca jeden wiersz.

W SQL Server 2000, rozpoczyna partia wykonać i tworzona jest tabela.Trzy INSERT sprawozdania są kompilowane pojedynczo, ale nie są wykonywane.Ponieważ druga INSERT powoduje błąd kompilacji, cała partia jest zakończony.SELECT Instrukcja nie zwraca żadnych wierszy.

Zasady używania instancji

Następujące zasady stosuje się do korzystania z partii:

  • Nie można łączyć instrukcji CREATE DEFAULT, funkcja tworzenia, CREATE PROCEDURE, Utwórz REGUŁĘ, tworzenie SCHEMATU, tworzenie WYZWALACZA i tworzenie WIDOKU z innych sprawozdań w partia.Instrukcja CREATE musi uruchomić partia.Wszystkie instrukcje, które należy wykonać w danej partia będą interpretowane jako część definicji pierwszej instrukcja CREATE.

  • Nie można zmienić tabela, a potem przywoływany nowe kolumny w tej samej partia.

  • Instrukcja EXECUTE jest pierwszą instrukcją w partia, słowo kluczowe EXECUTE nie jest wymagane.Słowo kluczowe wykonywanie jest wymagany, jeśli instrukcja EXECUTE nie jest pierwszą instrukcją w partia.

Ważna informacjaWażne:

Pliki wsadowe może zawierać poświadczenia przechowywanych w postaci zwykłego tekstu.Na ekranie użytkownika poświadczeń może będą wyświetlane podczas wykonywania partia.