Aracılığıyla paylaş


Toplu işlemi

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.Yürütme tablolarda öğeler sonra yürütülen teker planladığınız bir saat.

Her Transact-SQL deyim bir noktalı virgül sona erdirilecek. 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özdizim hatası gibi BIR derleme hatası yürütme planı derlemesini engeller.Bu nedenle, toplu iş iş hiçbir deyimlerinde yürütülür.

Bir çalışma-saat etkileri aşağıdaki aritmetik taşma ya da bir kısıtlama ihlali, hata varsa:

  • Çoğu çalışma-saat hataları geçerli deyimi ve toplu iş iş işlemde izleyen deyimleri durdurun.

  • Bazı çalışma-saat kısıtlama ihlali, gibi hataları yalnızca geçerli deyim durdurun.Tüm diğer tablolarda toplu iş iş iş çalıştırılır.

Çalışma-karşılaştı deyim önce çalıştırılan ifadeleri saat hata etkilenmez.Yalnızca toplu iş iş işlemde, hareketi geri alınmasına neden olur.Bu durumda, önce çalışma zamanı hatası yapılan kaydedilmemiş verileri değişiklikler geri alınır.

Örneğin, bir toplu iş 10 deyimlerinde vardır varsayalım.Beşinci deyim, bir sözdizimi hatası varsa, hiçbir deyimlerinde toplu iş iş iş çalıştırılır.Yürütülen olduğundan toplu iş derlenmiş ve ikinci deyim çalışması sırasında başarısız, ilk deyimin sonuçlarını etkilenmez.

SQL Server sağlar deyim-düzey recompilation.Derlenmiş diğer bir deyişle, bir deyim bir recompilation tetikler, bu deyim çekirdekler ve toplu iş iş iş tüm değil.Bu davranış farklı SQL Server 2000. Aşağıdaki örnek içeren göz önünde bir CREATE TABLE deyim ve dört INSERT aynı toplu iş iş iş tablolarda.

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 ;

Ilk olarak, toplu iş derlendi.The CREATE TABLE deyim is compiled, but because the tablo dbo.t3 does not yet exist, the INSERT statements are not compiled.

Ikinci olarak, toplu iş iş işlemin başladığı yürütmek.Tablo oluşturulur.Ilk INSERT derlenmiş ve hemen ardından yürütüldü. tablo Artık bir satır vardır.Sonra ikinci INSERT deyim derlendi. Derleme başarısız olur ve toplu iş iş iş sonlandırıldı.The SELECT deyim returns one row.

Içinde SQL Server 2000, yürütülecek toplu iş iş başlatır ve tablo oluşturulur. Üç INSERT ifadeleri, tek tek derlenen ancak yürütülmez. Çünkü ikinci INSERT Tüm toplu iş iş bir derleme hatasıyla sonlandırıldı neden olur. The SELECT deyim returns no rows.

Toplu işlemleri kullanma kuralları

Toplu işlemi kullanmak için aşağıdaki kurallar uygulanır:

  • CREATE DEFAULT, CREATE işlev, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER ve CREATE VIEW deyimlerini, toplu iş iş işteki diğer ifadelerle birleştirilemez.CREATE deyim toplu iş iş başlatmanız gerekir.Bu toplu iş iş işlemde izleyen tüm diğer ekstreleri ilk CREATE deyim tanımının bir parçası olarak yorumlanacaktır.

  • Bir tablo değiştirilemez ve sonra da yeni sütunlar aynı toplu iş iş iş başvuruyor.

  • yürütmek deyimi toplu iş iş işteki ilk deyim ise, yürütmek anahtar gerekli değildir.yürütmek deyim ilk deyim, bir toplu iş, yürütmek anahtar gereklidir.

Important noteImportant Note:

Toplu iş dosyaları, düz metin olarak depolanan kimlik bilgileri bilgilerini içerebilir.kimlik bilgileri bilgilerini kullanıcının ekran için toplu iş yürütme sırasında echoed.