Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Förhandsversion av Microsoft Fabric
Kompilerar en plan för den skickade markörsatsen eller batchen och skapar och fyller sedan markören.
sp_cursorprepexec kombinerar funktionerna i sp_cursorprepare och sp_cursorexecute. Den här proceduren anropas genom att ange ID = 5 i ett TDS-paket (Tabular Data Stream).
Transact-SQL syntaxkonventioner
Syntax
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Argument
Viktig
Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.
förberett handtag
En SQL Server-genererad förberedd handtag identifierare. Den förberedda referensparametern krävs och returnerar int.
markören
DEN SQL Server-genererade markören identifierare.
Markörparametern är en obligatorisk parameter som måste anges för alla efterföljande procedurer som agerar på den här markören, till exempel sp_cursorfetch.
params
Identifierar parametriserade instruktioner. params definition av variabler ersätts med parametermarkörer i -instruktionen. Parametern params krävs. När detta anges anropar params ett ntext-, nchar- eller nvarchar-indatavärde .
Not
Använd en ntext- sträng som indatavärde när -instruktionen parametriseras och scrollopt- PARAMETERIZED_STMT värdet är PÅ.
-instruktion
Definierar markörens resultatuppsättning. Parametern -instruktionen krävs och anropar ett ntext-, nchareller nvarchar indatavärde.
Not
Reglerna för att ange instruktionsvärdet är desamma som sp_cursoropen, med undantag för att instruktionssträngens datatyp måste vara ntext.
alternativ
En valfri parameter som returnerar en beskrivning av kolumnerna i markörresultatuppsättningen. Alternativparametern kräver följande indatavärde i int.
| Värde | Beskrivning |
|---|---|
0x0001 |
RETURN_METADATA |
scrollopt
Rullningsalternativ. Parametern scrollopt är valfri. När detta anges kräver scrollopt något av följande indatavärden i indata .
| Värde | Beskrivning |
|---|---|
0x0001 |
NYCKELUPPSÄTTNING |
0x0002 |
DYNAMISK |
0x0004 |
FORWARD_ONLY |
0x0008 |
STATISK |
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 |
På grund av möjligheten att det begärda alternativet inte är lämpligt för markören som definieras av -instruktionenfungerar den här parametern både som indata och utdata. I sådana fall tilldelar SQL Server en lämplig typ och ändrar det här värdet.
ccopt
Alternativ för samtidighetskontroll. Ccopt-parametern är valfri. När den anges kräver ccopt-parametern något av följande indatavärden.
| Värde | Beskrivning |
|---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS (tidigare känt som LOCKCC) |
0x0004 |
OPTIMISTIC (tidigare kallat OPTCC) |
0x0008 |
OPTIMISTIC (tidigare kallat 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 |
Precis som med scrolloptkan SQL Server tilldela ett annat värde än det som begärdes.
rowcount
En valfri parameter som anger antalet hämtningsbuffertar som ska användas med AUTO_FETCH. Standardvärdet är 20 rader.
Parametern rowcount fungerar annorlunda när den tilldelas som ett indatavärde jämfört med ett returvärde.
| Som indatavärde | Som returvärde |
|---|---|
| När AUTO_FETCH anges med FAST_FORWARD markörer radantalet representerar antalet rader som ska placeras i hämtningsbufferten. | Representerar antalet rader i resultatuppsättningen. När värdet för scrolloptAUTO_FETCH har angetts returnerar rowcount antalet rader som hämtades till hämtningsbufferten. |
parameter_name
Anger ett eller flera parameternamn enligt definitionen i parametern params . Det måste finnas en parameter som anges för varje parameter som ingår i params. Den här parametern krävs inte när Transact-SQL-instruktionen eller batchen i params inte har några definierade parametrar.
Returnera kodvärden
Om värdet params returnerar NULLparameteriseras inte -instruktionen.
Exempel
Det här exemplet visar användningen av sp_cursorprepexec. Den kör en fråga mot Person tabellen i AdventureWorks2022 databasen som returnerar alla poster där förnamnet är "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;