Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
Compileert een plan voor de ingediende cursorinstructie of batch en maakt en vult de cursor.
sp_cursorprepexec
combineert de functies van sp_cursorprepare
en sp_cursorexecute
. Deze procedure wordt aangeroepen door ID = 5
op te geven in een TDS-pakket (tabellaire gegevensstroom).
Transact-SQL syntaxisconventies
Syntaxis
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Argumenten
Belangrijk
Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.
voorbereide ingang
Een door SQL Server gegenereerde voorbereide ingang id. voorbereide ingang is vereist en retourneert int.
cursor
De door SQL Server gegenereerde cursor id.
cursor is een vereiste parameter die moet worden opgegeven voor alle volgende procedures die op deze cursor reageren, bijvoorbeeld sp_cursorfetch
.
params
Identificeert geparameteriseerde instructies. De parameters definitie van variabelen wordt vervangen door parametermarkeringen in de instructie. params is een vereiste parameter die een ntext, ncharof nvarchar invoerwaarde aanroept.
Notitie
Gebruik een ntext tekenreeks als invoerwaarde wanneer instructie wordt geparameteriseerd en de scrollopt PARAMETERIZED_STMT waarde is INGESCHAKELD.
instructie
Hiermee definieert u de resultatenset van de cursor. De instructie parameter is vereist en roept een ntext, ncharof nvarchar invoerwaarde aan.
Notitie
De regels voor het opgeven van de instructie waarde zijn hetzelfde als die voor sp_cursoropen
, met uitzondering dat de instructie tekenreeksgegevenstype moet worden ntext.
opties
Een optionele parameter die een beschrijving van de kolommen van de cursorresultatenset retourneert. opties de volgende int invoerwaarde vereisen.
Waarde | Beschrijving |
---|---|
0x0001 |
RETURN_METADATA |
Schuifoptie. scrollopt- is een optionele parameter waarvoor een van de volgende invoerwaarden is vereist.
Waarde | Beschrijving |
---|---|
0x0001 |
KEYSET |
0x0002 |
DYNAMISCH |
0x0004 |
FORWARD_ONLY |
0x0008 |
STATISCH |
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 |
Vanwege de mogelijkheid dat de aangevraagde optie niet geschikt is voor de cursor die is gedefinieerd door instructie, dient deze parameter als invoer en uitvoer. In dergelijke gevallen wijst SQL Server een geschikt type toe en wijzigt deze waarde.
Optie voor gelijktijdigheidsbeheer. is een optionele parameter waarvoor een van de volgende invoerwaarden is vereist.
Waarde | Beschrijving |
---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS (voorheen bekend als LOCKCC) |
0x0004 |
OPTIMISTISCH (voorheen OPTCC genoemd) |
0x0008 |
OPTIMISTISCH (voorheen BEKEND als 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 |
Net als bij scrolloptkan SQL Server een andere waarde toewijzen dan de waarde die is aangevraagd.
aantal rijen
Een optionele parameter die het aantal ophaalbufferrijen aangeeft dat moet worden gebruikt met AUTO_FETCH. De standaardwaarde is 20 rijen. rowcount zich anders gedraagt wanneer deze is toegewezen als invoerwaarde versus een retourwaarde.
Als invoerwaarde | Als retourwaarde |
---|---|
Wanneer AUTO_FETCH is opgegeven met FAST_FORWARD cursors rijaantal het aantal rijen aangeeft dat in de ophaalbuffer moet worden geplaatst. | Vertegenwoordigt het aantal rijen in de resultatenset. Wanneer de scrollopt AUTO_FETCH waarde is opgegeven, geeft rijaantal het aantal rijen dat in de ophaalbuffer is opgehaald, als resultaat. |
parameter_name
Wijst een of meer parameternamen aan zoals gedefinieerd in het argument parameters. Er moet een parameter worden opgegeven voor elke parameter die is opgenomen in params. Dit argument is niet vereist wanneer de Transact-SQL instructie of batch in params geen parameters heeft gedefinieerd.
Codewaarden retourneren
Als parameters een NULL
waarde retourneert, wordt de instructie niet geparameteriseerd.
Voorbeelden
In dit voorbeeld ziet u het gebruik van sp_cursorprepexec
. Er wordt een query uitgevoerd op de Person
tabel in de AdventureWorks2022
database die alle records retourneert waarbij voornaam 'Katherine' is.
USE AdventureWorks2022;
GO
DECLARE @prep_handle INT,
@cursor INT,
@scrollopt INT = 4104,
@ccopt INT = 8193,
@rowcnt INT;
EXEC 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,
'Katherine';
EXEC sp_cursorfetch @cursor;