İmleçler

İlişkisel bir veritabanında işlemleri eksiksiz bir satır kümesi üzerinde hareket. Örneğin, bir select deyimi tarafından döndürülen satır kümesi deyimi where yan tümcesinde koşulları karşılayan tüm satırlarından oluşur. Bu komple set deyimi tarafından döndürülen satır sonuç kümesi olarak bilinir. Uygulamaları, özellikle etkileşimli çevrimiçi uygulamaları, her zaman tüm sonuç kümesini bir birim olarak ile etkili bir şekilde çalışamaz. Bu uygulamalar, bir kerede bir satır veya satır bloğunu küçük ile çalışmak için bir mekanizma gerekir. İmleçler, bu mekanizmaya sonuç kümeleri uzantısı vardır.

Sonuç işleme imleçler genişletir:

  • Sonuç kümesini belirli satırları konumlandırma izin veriliyor.

  • Bir satır veya satır bloğunu sonuç geçerli konumdan alınıyor ayarlayın.

  • Veri destekleme değişiklikler sonucu geçerli konumunda satır kümesi.

  • Veritabanı veri sonuç kümesinde sunulan diğer kullanıcılar tarafından yapılan değişiklikleri görünürlük farklı düzeylerde destek.

  • Sağlayan Transact-SQLdeyimleri Komut dosyaları, saklı yordamları ve Tetikleyicileri erişmek için bir sonuç kümesi verileri.

Kavramlar

  • İmleç uygulamaları
    SQL Serverüç imleci uygulamaları destekler.

    • Transact-sql imleçler
      declare cursor sözdizimi dayanır ve ağırlıklı olarak kullanılan Transact-SQLkomut dosyaları, saklı yordamları ve Tetikleyicileri. Transact-SQLimleçler sunucu üzerinde uygulanır ve tarafından yönetilen Transact-SQListemciden sunucuya gönderilen deyimleri. Onlar da toplu işlemleri, saklı yordamlar veya Tetikleyiciler yer alabilecek.

    • Uygulama programlama arabirimi (API) sunucu imleçler
      ole db ve odbc API imleç işlevleri destekler. API sunucu imleçler sunucu üzerinde uygulanır. Bir istemci uygulaması bir API imleç işlevi çağıran her zaman SQL Serveryerel istemci ole db sağlayıcısı veya odbc sürücüsü için API sunucu imleç karşı eylem sunucuya istek iletir.

    • İstemci imleçler
      İçten tarafından uygulanan SQL Serveryerel istemci odbc sürücüsü tarafından ado API uygulayan dll. İstemci imleçler, sonuç kümesi satırları istemcide önbelleğe alarak uygulanır. Bir istemci uygulaması bir API imleç işlevi çağıran her zaman SQL Serveryerel istemci odbc sürücüsü veya ado dll gerçekleştiren istemcide önbelleğe alınan sonuç kümesi satır imleci operasyonu.

  • İmleç türü

    • Salt ileri
      Salt ileri imleç kaydırmayı desteklemiyor; Bu, yalnızca satırları seri olarak imleci sonuna kadar baştan getiriliyor destekler. Kadar onlar getirilen satır veritabanından alınır değil. Tüm etkilerini eklemek, GÜNCELLEŞTİRMEK ve geçerli kullanıcı tarafından yapılan veya sonuç kümesini etkiler satır satır imleci getirilen gibi görülebilir diğer kullanıcılar tarafından işlenen deyimleri delete.

      Sonra getirilen satır satır veritabanında yapılan değişikliklerin çoğu, imleci geriye doğru kaydırılır olamaz çünkü imleci yoluyla görünür değildir. Satır sonuç kümesi içindeki konumu değiştirilmiş bir sütun kümelenmiş bir dizin tarafından kapsanan güncelleştirme gibi belirlemek için bir değer kullanıldığı durumlarda imleci yoluyla değiştirilen değeri görülebilir.

      İmleç, ayrı bir tür olarak salt ileri imleç veritabanı API imleç modelleri dikkate rağmen SQL Serveryok. SQL Serverhem salt ileri gördüğünü ve statik, anahtar kümesi kullanımlı ve dinamik imleçler için uygulanabilecek seçenekler gidin. Transact-SQLstatik, anahtar kümesi kullanımlı ve dinamik imleçler salt ileri imleçler destekler. Veritabanı API imleç modelleri, gerçek saymak statik, anahtar kümesi kullanımlı ve dinamik imleçler her zaman kaydırılabilir. Bir veritabanı API imleç özellik veya özellik için yalnızca ileri, ayarlandığında SQL ServerBu salt ileri bir dinamik imleç uygulayan.

    • Statik
      Tam sonuç kümesi bir statik imleç yerleşik tempdb imleç açıldığında. Bir statik imleç her zaman sonuç olarak İmleç açıldığında kümesini görüntüler. Statik imleçler veya çok az değişiklik bulmak, ama kaydırma yapılırken nispeten az kaynaklarını tüketir.

      İmleci, herhangi bir sonuç kümesi üyeliği etkileyen veritabanında yapılan değişiklikler veya sonucu kurulum satırları sütunlarındaki değerler değişiklikleri yansıtmaz. Bir statik imleç değil imleç açıldığı sonra veritabanında eklenen yeni satırları görüntülemek, select deyimi imleç arama koşulları eşleşirse bile yok. Diğer kullanıcılar tarafından satır sonuç kümesi kadar yapma güncelleştirdiyseniz, yeni veri değerleri statik imleç içinde görüntülenmez. Statik imleç imleci açıldı sonra veritabanından silinmiş satırları görüntüler. (İmleç yeniden açıldı ve kapalı sürece) hiçbir güncelleştirme, INSERT veya delete işlemleri bir statik imleç yansıtılır, imleç açıldığında aynı bağlantıyı kullanarak yapılan değişiklikler bile değil.

      SQL Serverstatik imleçler her zaman salt okunurdur.

      Çalışma tablosunda bir statik imleç sonuç kümesi depolandığından tempdb, sonuç kümesinde satırların boyutunu en büyük satır boyutunu aşamaz bir SQL Servertablosu.

      Transact-SQLbüyük küçük harf duyarlı terimi statik imleçler için kullanır. Bazı veritabanı API onlara anlık imleçler tanımlayın.

    • Anahtar kümesi
      Üyelik ve sipariş satırları bir anahtar kümesi kullanımlı imleç imleç açıldığında sabittir. Anahtar kümesi kullanımlı imleçler benzersiz tanımlayıcılar, anahtar, anahtar kümesi bilinen bir dizi tarafından denetlenir. Anahtarlar, sonuç kümesinde satırların benzersiz şekilde tanımlayan sütun bir dizi inşa edilir. Anahtar kümesi için select deyimi imleç açıldığı anda nitelikli tüm satırları anahtar değerleri kümesidir. Anahtar kümesi için bir anahtar kümesi kullanımlı imleç yerleşik tempdb imleç açıldığında.

    • Dinamik
      Dinamik imleçler statik imleçler karşısında bulunmaktadır. Dinamik imleçler kendi sonuç kümesi imleci yoluyla kaydırma yaptığınızda satır yapılan tüm değişiklikleri yansıtır. Veri değerleri, sipariş ve üyelik sonuç kümesinde satırların her getirme üzerinde değiştirebilirsiniz. Tüm kullanıcılar tarafından yapılan tüm update, INSERT ve delete deyimlerini imleci yoluyla görülebilir. Güncelleştirmeleri hemen onlar kullanarak imleci yoluyla bir API işlevi gibi yapılırsa görünür SQLSetPos ya da Transact-SQLwhere current of yan. Onlar uygulanana kadar imleci hareket yalıtım düzeyini okuma kaydedilmemiş ayarlanmadığı sürece imleci dışında yapılan güncelleştirmeler görünür değildir.

Bir imleç isteme

SQL Serverbir imleç istemek için iki yöntem destekler:

  • Transact-SQL

    Transact-SQLDili destekleyen bir sözdizimi için ISO imleç sözdizimi sonra modellenmiştir imleçler kullanma.

  • Veritabanı uygulama programlama arabirimi (API) imleç işlevleri

    SQL ServerBu veritabanı API imleç işlevselliğini destekler:

    • ado ( Microsoft ActiveX Data Object)

    • OLE DB

    • odbc (açık veritabanı bağlantısı)

Uygulama asla bir imleç isteyen bu iki yöntem karıştırmak. API imleç davranışlar belirlemek için kullandığı uygulama değil sonra bağlamını belirtir bir Transact-SQLda istemek için declare cursor deyimi bir Transact-SQLimleç. Uygulama tüm API imleç özniteliklerini varsayılan değerlerine geri ayarlamışsa, declare cursor yalnızca bağlamını belirtir.

Ne eğer bir Transact-SQLne API imleç istenen SQL Servertam bir sonuç döndürme için varsayılanları ayarlamak, varsayılan sonuç kümesi, uygulama olarak bilinen.

Imleç işlem

Transact-SQLimleçler ve API imleçler farklı bir sözdizimine sahip, ancak aşağıdaki genel işlem ile kullanılan SQL Serverimleçler:

  1. Bir imleç sonuç kümesi ile ilişkilendirmek bir Transact-SQLdeyimi ve imleç imleci satırları güncelleştirilebilir olup olmadığı gibi özelliklerini tanımlayın.

  2. İdam Transact-SQLdeyimi imleci doldurmak için.

  3. İmleci istediğiniz satırları alabilirsiniz. Bir imleci bir satır ya da bir satır bloğunu almak için işlem bir getirme denir. Fetches ya da satır almak için bir dizi performans ileriye veya geriye doğru yönde kaydırma denir.

  4. İsteğe bağlı olarak, geçerli imleç konumunda satır üzerinde değişiklik işlemleri (güncelleştirme veya silme) gerçekleştirir.

  5. İmleç kapatın.

İlişkili İçerik

İmleç davranışlar Imleçler nasıl uygulanır

Ayrıca bkz.

Başvuru

declare cursor (Transact-sql)

Imleçler (Transact-sql)

Imleç işlevler (Transact-sql)

İmleç depolanan yordamlar (Transact-sql)