Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Kompiluje plan dla przesłanej instrukcji kursora lub partii, a następnie tworzy i wypełnia kursor.
sp_cursorprepexec łączy funkcje sp_cursorprepare i sp_cursorexecute. Ta procedura jest wywoływana przez określenie ID = 5 w pakiecie strumienia danych tabelarycznych (TDS).
Transact-SQL konwencje składni
Składnia
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Argumenty
Ważny
Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.
przygotowany uchwyt
Program SQL Server wygenerowany przygotowany do obsługi identyfikator. Przygotowany parametr dojścia jest wymagany i zwraca wartość int.
kursora
Program SQL Server wygenerował identyfikator kursora. Parametr kursora jest wymaganym parametrem, który musi być podany we wszystkich kolejnych procedurach, które działają na tym kursorze, na przykład sp_cursorfetch.
params
Identyfikuje sparametryzowane instrukcje. Parametry definicji zmiennych są zastępowane znacznikami parametrów w instrukcji . Parametr parametru jest wymagany. Po określeniu parametry wywołuje wartość wejściową ntext, nchar lub nvarchar .
Nuta
Użyj ciągu ntext jako wartości wejściowej, gdy instrukcja jest sparametryzowana, a wartość PARAMETERIZED_STMT przewijania jest włączona.
instrukcji
Definiuje zestaw wyników kursora. Instrukcja jest wymagana i wywołuje ntext, ncharlub nvarchar wartości wejściowej.
Nuta
Reguły określania wartości instrukcji są takie same jak sp_cursoropen, z wyjątkiem, że typ danych ciągu instrukcji musi być ntext.
opcje
Opcjonalny parametr, który zwraca opis kolumn zestawu wyników kursora. Parametr options wymaga następującej wartości wejściowej int .
| Wartość | Opis |
|---|---|
0x0001 |
RETURN_METADATA |
przewijania
Opcja przewijania. Parametr scrollopt jest opcjonalny. Po określeniu elementu scrollopt wymaga jednej z następujących wartości wejściowych int .
| Wartość | Opis |
|---|---|
0x0001 |
ZESTAWU KLUCZY |
0x0002 |
DYNAMICZNY |
0x0004 |
FORWARD_ONLY |
0x0008 |
STATYCZNY |
0x10 |
FAST_FORWARD |
0x1000 |
PARAMETERIZED_STMT |
0x2000 |
AUTO_FETCH |
0x4000 |
AUTO_CLOSE |
0x8000 |
CHECK_ACCEPTED_TYPES |
0x10000 |
KEYSET_ACCEPTABLE |
0x20000 |
DYNAMIC_ACCEPTABLE |
0x40000 |
FORWARD_ONLY_ACCEPTABLE |
0x80000 |
STATIC_ACCEPTABLE |
0x100000 |
FAST_FORWARD_ACCEPTABLE |
Ze względu na możliwość, że żądana opcja nie jest odpowiednia dla kursora zdefiniowanego przez instrukcję , ten parametr służy zarówno jako dane wejściowe, jak i wyjściowe. W takich przypadkach program SQL Server przypisuje odpowiedni typ i modyfikuje tę wartość.
Opcja kontroli współbieżności. Parametr ccopt jest opcjonalny. Po określeniu parametr ccopt wymaga jednej z następujących wartości wejściowych int .
| Wartość | Opis |
|---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS (wcześniej znany jako LOCKCC) |
0x0004 |
OPTCC (wcześniej znany jako OPTCC) |
0x0008 |
OPTCCVAL (wcześniej znany jako OPTCCVAL) |
0x2000 |
ALLOW_DIRECT |
0x4000 |
UPDT_IN_PLACE |
0x8000 |
CHECK_ACCEPTED_OPTS |
0x10000 |
READ_ONLY_ACCEPTABLE |
0x20000 |
SCROLL_LOCKS_ACCEPTABLE |
0x40000 |
OPTIMISTIC_ACCEPTABLE |
0x80000 |
OPTIMISITC_ACCEPTABLE |
Podobnie jak w przypadku przewijaniaprogram SQL Server może przypisać inną wartość niż żądana.
rowcount
Opcjonalny parametr, który oznacza liczbę wierszy buforu pobierania do użycia z elementem AUTO_FETCH. Wartość domyślna to 20 wierszy. Parametr rowcount zachowuje się inaczej po przypisaniu jako wartość wejściowa w porównaniu z wartością zwracaną.
| Jako wartość wejściowa | Jako wartość zwracana |
|---|---|
| Po określeniu AUTO_FETCH z kursorami FAST_FORWARD rowcount reprezentuje liczbę wierszy, które mają być umieszczane w buforze pobierania. | Reprezentuje liczbę wierszy w zestawie wyników. Po określeniu wartości scrolloptAUTO_FETCHwiersz zwraca liczbę wierszy pobranych do buforu pobierania. |
parameter_name
Wyznacza co najmniej jedną nazwę parametrów zdefiniowaną w parametrze params . Należy podać parametr dla każdego parametru uwzględnionego w parametrach . Ten parametr nie jest wymagany, gdy instrukcja Transact-SQL lub partia w parametrach nie ma zdefiniowanych parametrów.
Zwracanie wartości kodu
Jeśli wartość parametrów zwraca NULLwartość , instrukcja nie jest sparametryzowana.
Przykłady
W tym przykładzie pokazano użycie sp_cursorprepexec. Uruchamia zapytanie względem Person tabeli w AdventureWorks2025 bazie danych zwracające wszystkie rekordy, w których imię to "Kirby".
USE AdventureWorks2022;
GO
DECLARE @prep_handle INT,
@cursor INT,
@scrollopt INT = 4104,
@ccopt INT = 8193,
@rowcnt INT;
EXECUTE sp_cursorprepexec
@prep_handle OUTPUT,
@cursor OUTPUT,
N'@fName nvarchar(100)',
N'SELECT FirstName, LastName FROM Person.Person WHERE FirstName = @fName',
@scrollopt,
@ccopt,
@rowcnt OUTPUT,
'Kirby';
EXECUTE sp_cursorfetch @cursor;