Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Összeállít egy tervet az elküldött kurzorutasításhoz vagy köteghez, majd létrehozza és feltölti a kurzort.
sp_cursorprepexec egyesíti a sp_cursorprepare és a sp_cursorexecutefüggvényét. Ezt az eljárást úgy hívjuk meg, hogy ID = 5 egy táblázatos adatfolyam-csomagban (TDS- csomagban) adhatja meg.
Transact-SQL szintaxis konvenciói
Szintaxis
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
előkészített kezelő
Egy SQL Server által létrehozott előkészített leíró azonosító. Az előkészített leíróparaméter szükséges, és int értéket ad vissza.
kurzor
Az SQL Server kurzort azonosítót generált. A kurzorparaméter egy kötelező paraméter, amelyet meg kell adni a kurzort követő összes további eljáráshoz, például sp_cursorfetch.
params
Paraméteres utasításokat azonosít. A paraméterjelek változók definíciója a paraméterjelölők helyett szerepel az utasításban. A params paraméter megadása kötelező. Ha meg van adva, a paramokntext, nchar vagy nvarchar bemeneti értéket kérnek.
Jegyzet
ntext karakterláncot használjon bemeneti értékként, ha utasítás paraméteres, és a scrollopt PARAMETERIZED_STMT értéke BE van kapcsolva.
utasítás
Meghatározza a kurzor eredményhalmazát. A utasítás paraméterre van szükség, és ntext, ncharvagy nvarchar bemeneti értéket kér.
Jegyzet
Az utasítás értékének megadására szolgáló szabályok megegyeznek a sp_cursoropen, azzal a kivétellel, hogy az utasítás sztring adattípusának ntextnek kell lennie.
beállítások
Nem kötelező paraméter, amely a kurzor eredményhalmaz oszlopainak leírását adja vissza. A beállításparaméterhez a következő bemeneti bemeneti érték szükséges.
| Érték | Leírás |
|---|---|
0x0001 |
RETURN_METADATA |
scrollopt
Görgetési lehetőség. A scrollopt paraméter megadása nem kötelező. Ha meg van adva, a scrollopt a következő bemeneti értékek egyikét igényli.
| Érték | Leírás |
|---|---|
0x0001 |
BILLENTYŰKÉSZLET |
0x0002 |
DINAMIKUS |
0x0004 |
FORWARD_ONLY |
0x0008 |
STATIKUS |
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 |
Mivel lehetséges, hogy a kért beállítás nem felel meg az utasításáltal meghatározott kurzornak, ez a paraméter bemenetként és kimenetként is szolgál. Ilyen esetekben az SQL Server hozzárendel egy megfelelő típust, és módosítja ezt az értéket.
ccopt
Egyidejűség-vezérlési lehetőség. A ccopt paraméter megadása nem kötelező. Ha meg van adva, a ccopt paraméterhez az alábbi bemeneti értékek egyikére van szükség.
| Érték | Leírás |
|---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS (korábbi nevén LOCKCC) |
0x0004 |
OPTIMISTA (korábbi nevén OPTCC) |
0x0008 |
OPTIMISTA (korábbi nevén 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 |
A scrolloptesetén is az SQL Server a kért értéktől eltérő értéket rendelhet hozzá.
sorszám
Nem kötelező paraméter, amely a lekérési puffersorok AUTO_FETCHszámát jelzi. Az alapértelmezett érték 20 sor. A sorszámlálási paraméter eltérően viselkedik, ha bemeneti értékként van hozzárendelve a visszatérési értékhez képest.
| Bemeneti értékként | Visszatérési értékként |
|---|---|
| Ha AUTO_FETCH FAST_FORWARD kurzorokkal van megadva, sorszám a beolvasási pufferbe helyezendő sorok számát jelöli. | Az eredményhalmaz sorainak számát jelöli. A scrolloptAUTO_FETCH érték megadásakor a sorszám a beolvasási pufferbe beolvasott sorok számát adja vissza. |
parameter_name
Egy vagy több paraméternevet jelöl ki a params paraméterben meghatározottak szerint . Az paramsminden paraméteréhez meg kell adni egy paramétert. Ez a paraméter nem szükséges, ha a paraméterben lévő Transact-SQL utasítás vagy köteg nem definiált paramétereket.
Kódértékek visszaadása
Ha a paramérték visszaadja NULL, az utasítás nincs paraméterezve.
Példák
Ez a példa a sp_cursorprepexechasználatát mutatja be. Lekérdezést futtat az Person adatbázisban lévő táblán, és visszaadja az AdventureWorks2025 összes rekordot, ahol a keresztnév "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;