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.
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.
NotMUTLAK 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:
'@' 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.
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.
Ayrıca bkz.