Udostępnij przez


Keyset-driven Cursors (Database Engine)

Członkostwo i kolejność wierszy z kursor, którego podstawę stanowi zestaw kluczy są stałe, kiedy kursor jest otwarty.Kursory opartej na zestaw kluczy są kontrolowane przez zestaw unikatowych identyfikatorów, klucze, znane jako zestawu kluczy.Klucze są zbudowane z zestaw kolumn, które unikatowo identyfikują wiersze zestaw wyników.Zestaw kluczy jest zbiorem wartości klucz z wszystkich wierszy, które współpraca z instrukcja SELECT w momencie otwarcia kursor.Zestaw kluczy dla kursor, którego podstawę stanowi zestaw kluczy jest wbudowana w tempdb , gdy kursor jest otwarty.

Zmiany wartości danych w kolumnach nonkeyset (przez właściciela kursora lub dokonanych przez innych użytkowników) są widoczne, jak użytkownik przewija się kursor.Wstawia do bazy danych dokonane poza kursor nie są widoczne w kursor, chyba że kursor jest zamknięta i ponownie otworzyć.Wstawia dokonanych przy użyciu kursor, za pomocą funkcja API takich jak ODBC SQLSetPos funkcja są widoczne na końcu kursor.@@ FETCH_STATUS zwraca stan "Brak wierszy" podczas próby pobrania wierszy, usuwany, gdy kursor został otwarty.Aktualizacja do kolumna klucz działa podobnie jak usuwanie starych wartości klucz, a po nim wstawiania nowych wartości klucz.Nowa wartość klucz nie jest widoczny, jeśli aktualizacja nie została stworzona przy użyciu kursora; jest on widoczny na końcu kursor, jeśli aktualizacja została stworzona przy użyciu kursora, za pomocą jednej funkcja interfejsu API na przykład SQLSetPos or the Transact-SQL WHERE klauzula CURRENT OF a instrukcja SELECT nie zawiera warunek łączyć w klauzula FROM. Nowa wartość klucz nie jest widoczny, jeśli ustawiono wartość insert a tabela zdalna w klauzula FROM.Próby pobrania stara wartość klucz uzyskać w tym samym Brak wierszy pobrania stanie jako do usuniętego wiersza.

Uwaga

Indeks na kolumny obliczane nie mogą być używane podczas zgłaszania kursor zestawu kluczy opartych na tabela zdalna.Można utworzyć innego indeksu, który ma dostarczyć unikatowych kluczy dla tej tabela zdalnej.