Toplu işlemleri

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.Deyimleri yürütme planı olan sonra yürütülen birinde bir saat.

Her Transact-SQL deyim sona noktalı.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.

Bir sözdizimi hatası gibi bir derleme hatası derleme yürütme planı engeller.Bu nedenle, hiçbir deyimleri toplu iş yürütülür.

Run -saat aritmetik taşma veya bir kısıtlama ihlali gibi hata aşağıdaki efektleri birine sahiptir:

  • Çoğu run -saat Dur hataları etkin ifadeyi ve toplu iş iş işlemde izleyin deyimleri.

  • Bazı çalışma -saat kısıtlama ihlalleri gibi hataları yalnızca geçerli deyim durdurma.Geri kalan ifadeler toplu iş yürütülür.

Run - karşılaştı deyim önce yürütülen deyimlerisaat hata etkilenmez.Tek istisna toplu iş iş işlemde olduğu ve geri alınması için harekete soruna neden olur.Bu durumda, çalışma - önce yapılan kaydedilmemiş veriyi değişikliklersaat hata geri alınmış.

Örneğin, toplu iş iş 10 bildiri vardır varsayalım.Beşinci deyim sözdizimi hatası varsa, hiçbir deyimleri toplu iş yürütülür.Zaten yürüttü toplu iş iş derlenmiş ve ikinci deyim çalışırken başarısız olursa, ilk deyim sonuçlar etkilenmez çünkü.

SQL Serverdeyim düzey yeniden derlemesinde sağlar.Yani bir deyim bir yeniden derlemesinde tetiklerse, o ifadeyi derlenir ve tüm toplu iş iş değil.Bu davranışı farklıdır SQL Server 2000.İçeren aþaðýdaki örneði ele alalým bir CREATE TABLE deyim ve dört INSERT deyimleri aynı toplu iş iş.

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 ;

İlk olarak, toplu iş iş derlenir.The CREATE TABLE statement is compiled, but because the table dbo.t3 does not yet exist, the INSERT statements are not compiled.

toplu iş iş ikinci başladığı yürütmek.Tablo oluşturulur.İlk INSERT nasıl derlendiği ve hemen yürütüldü.tablo şimdi bir satır vardır.Daha sonra ikinci INSERT deyim derlenmiş.Derleme başarısız olur ve toplu iş iş iş sonlandırıldı.The SELECT statement returns one row.

De SQL Server 2000, toplu iş iş başladığı yürütmek ve tablo oluşturulur.Üç INSERT ifadeleri tek tek derlenmiş ancak yürütülmez.Çünkü ikinci INSERT neden olan bir derleme hatası, tüm toplu iş iş işlem sona erdi.The SELECT statement returns no rows.

Toplu işlemleri kullanma kuralları

Toplu işlemleri kullanma için aşağıdaki kurallar geçerlidir:

  • create default, create FUNCTION, create procedure, Kural Oluştur, create schema, tetikleyici oluşturmak ve create VIEW deyimleri toplu iş iş diğer deyimleri ile birleştirilemez.create deyim toplu iş iş başlatmanız gerekir.Bu toplu iş iş işlemi izleyin tüm ifadeleri ilk create deyim tanımının bir parçası olarak kabul edilecektir.

  • Bir tablo değişti ve sonra yeni sütunlar aynı toplu iş içinde başvurulan.

  • execute anahtar sözcük bir execute deyim ilk deyim bir toplu iş iş ise, gerekli değildir.execute anahtar sözcük execute deyimi toplu iş içinde ilk deyim ise gereklidir.

Önemli notÖnemli

Toplu iş dosyaları düz metin olarak depolanan kimlik bilgileri bilgilerini içerebilir.Kimlik bilgileri toplu iş yürütme sırasında kullanıcının ekrana yansıtılması.