Sammanfattning: i den här självstudien lär du dig hur du använder SQL Server-markören för att bearbeta en resultatuppsättning, en rad i taget.
SQL fungerar baserat på uppsättning t.ex. SELECT
uttalande returnerar en uppsättning rader som kallas en resultatuppsättning. Ibland kanske du vill bearbeta en datamängd rad för rad. Det är här markörer spelar in.
Vad är en databasmarkör
En databasmarkör är ett objekt som gör det möjligt att korsa över raderna i en resultatuppsättning. Det låter dig bearbeta enskilda rader som returneras av en fråga.
SQL Server-markörens livscykel
Detta är steg för att använda en markör:
Förklara först en markör.
Code language: SQL (Structured Query Language) (sql)
För att deklarera en markör anger du dess namn efter DECLARE
nyckelordet med CURSOR
datatyp och ger en SELECT
uttalande som definierar resultatuppsättningen för markören.
Öppna och fyll sedan markören genom att köra SELECT
uttalande:
Code language: SQL (Structured Query Language) (sql)
Hämta sedan en rad från markören till en eller flera variabler:
Code language: SQL (Structured Query Language) (sql)
SQL Server tillhandahåller @@FETCHSTATUS
-funktionen som returnerar statusen för den sista markören FETCH
som körs mot markören; Om @@FETCHSTATUS
returnerar 0, vilket betyder att FETCH
uttalandet lyckades. Du kan använda uttalandet WHILE
för att hämta alla rader från markören som visas i följande kod:
Code language: SQL (Structured Query Language) (sql)
Stäng sedan markören:
Code language: SQL (Structured Query Language) (sql)
Slutligen placera markören:
Code language: SQL (Structured Query Language) (sql)
SQL Server-markörexempel
Vi använder tabellen prodution.products
från exempeldatabasen för att visa dig hur du använder en markör:
Förklara först två variabler för att innehålla produktnamn och listpris, och en markör för att hålla resultatet av en fråga som hämtar produktnamn och listpris från production.products
tabellen:
Öppna sedan markören:
Code language: SQL (Structured Query Language) (sql)
Hämta sedan varje rad från markören och skriv ut produktnamnet och listpriset:
Stäng därefter markören:
Code language: SQL (Structured Query Language) (sql)
Slutligen placera markören för att släppa den.
Följande kodavsnitt sätter ihop allt:
Här är delutmatningen:
I praktiken kommer du sällan att använda markören för att bearbeta en resultatuppsättning rad för rad.
I denna handledning har du lärt dig hur du använder SQL Server-markören för att bearbeta en resultatuppsättning, varje rad i taget.