Aracılığıyla paylaş


sp_cursor (Transact-SQL)

İstekleri güncelleştirmeler konumlandırıldı.Bu yordamı, bir veya daha fazla satır bir imleç's getirme arabelleğindeki işlemleri gerçekleştirir.sp_cursor is invoked by specifying ID = 1 in a tabular data stream (TDS) packet.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

sp_cursor  cursor, optype, rownum, table
    [ , value [...n] ] ]

Bağımsız değişkenler

  • cursor
    imleç işleci.cursorçağıran için gerekli bir parametre bir int Giriş değeri.cursorİş ele tarafından üretilen değer SQL Server ve tarafından döndürülen sp_cursoropen yordam.

  • optype
    imleç hangi işlemi belirler, gerekli bir parametre gerçekleştirecek olan.optypeaşağıdakilerden birini gerektirir int giriş değerleri.

    Değer

    Ad

    Açıklama

    0x0001

    GÜNCELLEŞTİRME

    Alma arabelleği bir veya daha fazla satır güncelleştirmek için kullanılır.Belirtilen satır rownum yeniden erişilmesi ve güncelleştirildi.

    0X0002

    SİL

    Alma arabelleği bir veya daha fazla satır silmek için kullanılır.Belirtilen satır rownum yeniden erişilmesi ve silindi.

    0x0004

    EKLE

    INSERT deyimoluşturma olmadan veri ekler.

    0x0008

    YENİLEME

    Alttaki tablodan arabellek yeniden doldurmak için kullanılır ve satır güncelleştirme, yenileme veya başarısız iyimser eşzamanlılık denetimi yüzünden veya bir güncelleştirme sonra silmek için kullanılabilir.

    0x10

    KİLİT

    Neden olan bir SQL Server u-kilidi alınan sayfa içeren belirtilen satır.Bu kilit uyumlu s kilitleri ile ancak x kilitleri ya da diğer u kilitleri ile değil.Kısa dönemli kilitleme uygulamak için kullanılır.

    0X20 değerli

    SETPOSITION

    Program bir sonraki sorun ödeyeceğini zaman kullanılan SQL Server delete veya update deyimkonumlandırılmış.

    0x40

    MUTLAK

    Yalnızca update ya da delete ile birlikte kullanılabilir.MUTLAK yalnızca anahtar KÜMESİ imleç ile kullanılır.DİNAMİK imleçler için yoksayılır ve statik imleçler güncelleştirilemez.

    NotNot
    MUTLAK değil getirilen anahtar kümesi içinde bir satırda belirtilir, eşzamanlılık onay işlemi başarısız olabilir ve dönüş sonucu garanti edilemez.
  • rownum
    imleç , üzerinde çalışacağı getirme arabelleğindeki satır güncelleştirme veya silme belirtir.

    Not

    Bu herhangi bir AKRABASI, İleri veya geri getirme işlemi başlangıç noktasını etkilemez, ne de herhangi bir güncelleştirme veya silme işlemi kullanarak sp_cursor.

    rownumçağıran için gerekli bir parametre bir int Giriş değeri.

    • 1
      Alma arabelleği ilk satırı belirtir.

    • 2
      Alma arabelleği ikinci satırı belirtir.

    • 3, 4, 5
      Üçüncü satır vb. belirtir.

    • n
      N. satır getirme arabellekte belirtir.

    • 0
      Alma arabelleği tüm satırlarda gösterir.

      Not

      Yalnızca güncelleştirme, silme, yenileme veya kilit ile kullanılmak üzere geçerli olan optype değerler.

  • table
    tablo tablo adı, optype için birleştirmek imleç tanımını içerir veya belirsiz sütun adları tarafından döndürülen geçerli value parametresi.Belirli bir tablo belirlendiyse, from yan tümcetümcesinde tablo ilk varsayılandır.table bir dize giriş değeri gerektiren bir isteğe bağlı parametredir.dize herhangi bir karakter veya UNICODE veri türü belirtilebilir.tableparçalı tablo adı olabilir.

  • value
    Ekle veya değerleri güncelleştirmek için kullanılır.valuedize parametresi update ve INSERT ile kullanılan yalnızca optype değerler.dize herhangi bir karakter veya UNICODE veri türü belirtilebilir.

    Not

    Parametre adları için value tarafından atanabilirkullanıcının.

Dönüş Kodu Değerleri

Bir rpc kullanırken, arabellek sayısı 0 ile konumlandırılmış bir silme veya güncelleştirme işlemi done iletisi ile döner bir rowcount 0 (hata) veya 1 (başarılı) her satır getirme arabellek.

Açıklamalar

optype parametresi

update, delete, yenileme veya kilit SETPOSITION birleşimlerini dışında; veya güncelleştirme veya silme, mutlak optype değerler birbirini özel.

Gelen güncelleştirme değerini set yan tümce oluşturulur value parametresi.

INSERT kullanmanın yararlarından biri optype değerdir olduğunu önlemek dönüştürme karakter olmayan verileri karakter biçiminde ekler.Değerleri güncelleştirme aynı şekilde belirtilir.Gerekli sütunlar dahil edilmez, ekleme başarısız olur.

SETPOSITION değeri herhangi bir AKRABASI, İleri veya geri getirme işlemi başlangıç noktasını etkilemez, ne de güncelleştirmeleri veya silmeleri kullanılarak gerçekleştirilen yapmak sp_cursor arabirim.Satır getirme arabellekte belirtmiyor herhangi bir sayı verilen herhangi bir hata ile 1 küme edilen konum neden olur.SETPOSITION yürütüldükten sonra konumu sonraki kadar etkin kalır sp_cursorfetch işlemi, Transact-SQL getirme operasyonu veya sp_cursor SETPOSITION işlemi ile aynı imleç.Bir sonraki sp_cursorfetch işlem iken diğer imleç çağrıları değeri etkilemez yeni alma arabelleği ilk satırda imleç konumunu olacaktır kümepozisyonu.SETPOSITION yenileme, update, delete or yan tümce tarafından bağlanabilir veya son değiştirilen satır konumuna değerini küme için sırayla KİLİTLEMEK.

Satır getirme arabellekte yoluyla belirtilmemişse, rownum parametresi, konumu olacaktır küme döndürülen hata ile 1.Konum kümeolduktan sonra onu sonraki kadar sürdürür sp_cursorfetch işlemi, Transact-SQL getirme operasyonu veya sp_cursor SETPOSITION işlemi, aynı imleçgerçekleştirilir.

SETPOSITION bağlı bir or yan tümce ile yenileme, GÜNCELLEŞTİRMEK, silmek veya küme için son değiştirilen satır imleç konumuna kilit.

ile belirtilen parametre

Belirtilmişse, rownum parametre yorumlayabilir içinde satır numarası yerine anahtar kümesi içinde satır sayısı olarakgetirme arabellek.eşzamanlılık denetim korunur sağlamak için kullanıcının sorumluluğundadır.Bu scroll_locks imleçler için bağımsız olarak (Bu işlem üzerinden yapılabilir) verilen satır kilit tutmalarını gerekir anlamına gelir.İYİMSER imleçler için daha önce bu işlemi gerçekleştirmek için satır getirilen gerekir.

tablo Parametre

optype Değer olduğunda güncelleştirme veya ekleme ve bir tam güncelleştirme veya ekleme deyim olarak gönderilen value parametresi, belirtilen değer table göz ardı edilir.

Not

Görünümlere ilişkin, yalnızca bir tablo görünümünde katılan değiştirilebilir.value Parametresi sütun adları görünümünde sütun adları yansıtmak gerekir, ancak tablo adı, temel temel tablo olabilir (hangi durum sp_cursor Görünüm adı yerine başkalarını kullanacaktır).

Parametre değeri

İki farklı şekilde kullanma kurallarına value daha önce bağımsız değişkenleri bölümünde belirtildiği gibi:

  1. '@' Bir ad kullanabilirsiniz Pre-beklemedeki herhangi adlı sütun seçme listesinde adına value parametreleri.Veri dönüştürme gerekli olmayabilir bu alternatif bir faydası olur.

  2. Tam bir update ve INSERT deyim gönderebilir veya update ve INSERT deyim bölümlerini göndermek için birden çok parametre kullanmak için bir parametre kullanın, SQL Server sonra tam bir deyimoluşturun. Buna örnek olarak, bu konunun ilerisinde örnekler bölümünde bulunabilir. 

Örnekler

Alternatif değer parametresini kullanır

İçin güncelleştirme:

Bir tek parametresi kullanıldığında, bir update deyim aşağıdaki sözdizimini kullanarak gönderilebilir:

[ [ UPDATE <table name> ] SET ] {<column name> = expression} [,…n]

Not

Güncelleştirme <tablo adı> belirtilirse, belirtilen herhangi bir değer için table parametresi yoksayılacak.

Birden çok parametre kullanıldığında, ilk parametre bir dize aşağıdaki biçimde olmalıdır:

[ SET ] <column name> = expression [,... n]

ve sıralı Parametreler biçiminde olması gerekir:

<column name> = expression [,... n]

Bu durum <tablo adı> oluşturulmuş güncelleştirme deyim belirtilen veya tarafından farklı için varsayılan olarak alınır olup table parametresi.

INSERT:

Bir tek parametresi kullanıldığında, INSERT deyim aşağıdaki sözdizimini kullanarak gönderilebilir:

[ [ INSERT [INTO] <table name> ] VALUES ] ( <expression> [,... n] )

Not

Yoksa Ekle <tablo adı> belirtilirse, belirtilen herhangi bir değer için table parametre dikkate alınmaz.

Birden çok parametre kullanıldığında, ilk parametre bir dize aşağıdaki biçimde olmalıdır:

[ VALUES ( ] <expression> [,... n]

ve sıralı Parametreler biçiminde olması gerekir:

expression [,... n]

Burada değerleri belirtildi, durum olması gerekir bir sondaki dışında ")" Son ifadesonra.Bu durum <tablo adı> deyim table parametresi.

Not

Adlandırılmış parametre olarak, yani bir parametre iletmek mümkün "@VALUES".Bu durum da diğer adlandırılmış parametreler kullanılabilir.