Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQL deyimleri toplu işlemi, iki veya daha fazla SQL deyiminden oluşan bir grup veya iki veya daha fazla SQL deyiminden oluşan bir grupla aynı etkiye sahip tek bir SQL deyimidir. Toplu işlem deyimleri, ağ trafiğini azaltarak ve veri kaynağının yürütmeyi iyileştirmesine izin vererek performansı geliştirebilir.
Toplu iş türleri
Bazı uygulamalarda, herhangi bir sonuç kullanılabilir olmadan önce batch deyiminin tamamı yürütülür. Ağ trafiği genellikle azaltılabildiğinden ve veri kaynağı bazen bir grup SQL deyiminin yürütülmesini iyileştirebildiğinden, bu genellikle deyimleri ayrı ayrı göndermekten daha verimlidir. Diğer uygulamalarda SQLMoreResults çağrılması, toplu işlemdeki bir sonraki deyimin yürütülmesini tetikler. ODBC aşağıdaki toplu iş türlerini destekler:
Açık Toplu İşlemlerAçık toplu iş , noktalı virgülle (;)) ayrılmış iki veya daha fazla SQL deyimidir. Örneğin, aşağıdaki SQL komutlarının toplu işlemi yeni bir satış siparişi açar. Bunun için hem Siparişler hem de Satırlar tablolarına satır eklenmesi gerekir. Son ifadeden sonra noktalı virgül olmadığını unutmayın.
INSERT INTO Orders (OrderID, CustID, OpenDate, SalesPerson, Status) VALUES (2002, 1001, {fn CURDATE()}, 'Garcia', 'OPEN'); INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 1, 1234, 10); INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 2, 987, 8); INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 3, 566, 17); INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 4, 412, 500)Süreçler Bir süreç birden fazla SQL deyimi içeriyorsa, o SQL deyimleri toplu bir işlem olarak kabul edilir. Örneğin, aşağıdaki SQL Server'a özgü deyimi, bir müşteri hakkında bilgi içeren bir sonuç kümesi ve bu müşterinin tüm açık satış siparişlerini listeleyen bir sonuç kümesi döndüren bir yordam oluşturur:
CREATE PROCEDURE GetCustInfo (@CustomerID INT) AS SELECT * FROM Customers WHERE CustID = @CustomerID SELECT OrderID FROM Orders WHERE CustID = @CustomerID AND Status = 'OPEN'CREATE PROCEDURE deyiminin kendisi bir sql deyimleri grubu değildir. Ancak, oluşturduğu yordam bir dizi SQL deyimidir. CREATE PROCEDURE deyimi SQL Server'a özgü olduğundan ve SQL Server bir CREATE PROCEDURE deyiminde birden çok deyimi ayırmak için noktalı virgül gerektirmediğinden, iki SELECT deyimini noktalı virgülle ayırmaz.
Parametre Dizileri - Parametre dizileri, toplu işlemleri gerçekleştirmenin etkili bir yolu olarak parametreli SQL deyimiyle kullanılabilir. Örneğin, parametre dizileri aşağıdaki INSERT deyimiyle birlikte yalnızca tek bir SQL deyimi yürütülürken Lines tablosuna birden çok satır eklemek için kullanılabilir:
INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (?, ?, ?, ?)Veri kaynağı parametre dizilerini desteklemiyorsa, sürücü her parametre kümesi için SQL deyimini bir kez yürüterek bunlara öykünebilir. Daha fazla bilgi için bu makalenin devamında yer alan Parametre DeğerlerininDeyim Parametreleri ve Dizileri bölümüne bakın.
Farklı toplu iş türleri birlikte çalışabilir şekilde karıştırılamaz. Başka bir deyişle, bir uygulama yordam çağrılarını içeren açık bir toplu işlemi yürütmenin sonucunu, parametre dizilerini kullanan açık bir toplu işlemi ve parametre dizilerini kullanan bir yordam çağrısını belirleme yöntemi sürücüye özgüdür.