01.sql: @@CPU_BUSY
A változó segítségével meghatározható a CPU aktivitása egy-egy művelet alatt. Az eredményt ezredmásodpercben kapjuk.
Változó típusa: integer
SELECT @@CPU_BUSY AS 'CPU ms', EmployeeID, count(EmployeeID) AS 'Count' From Orders Group by EmployeeID
02.sql: @@MAX_PRECISION
A decimal és numeric típusú adatok esetén megadható maximális precizitás mértéke olvasható ki a változóból.
Változó típusa: tinyint
SELECT @@MAX_PRECISION as 'Precizitás'
Alábbi táblázat összefoglalja, hogy egy adott precizitás esetén hány bájt szükséges az adott szám tárolásához.
| Precizitás |
Tároláshoz szükséges bájtok |
| 1 - 9 |
5 |
| 10-19 |
9 |
| 20-28 |
13 |
| 29-38 |
17 |
03.sql: @@NESTLEVEL
E példa kipróbálása előtt hozzuk létre a Northwind adatbázisba a két alábbi tárolt eljárást:
CREATE PROCEDURE proc1
as
select @@NESTLEVEL
exec proc2
GO
CREATE PROCEDURE proc2
as
select @@NESTLEVEL
GO
A NESTLEVEL változó segítségével meghatározható hogy a tárolt eljárásokban milyen mélységig vagyunk benne. Az alapszint értéke nulla. Ha meghívunk egy tárolt eljárást, akkor a NESTLEVEL változó értéke 1 lesz. Ha ez a tárolt eljárás meghív egy másikat, akkor a NESTLEVEL változó értéke már 2 lesz. Ha lefut a második tárolt eljárás, akkor nyilván az elsőre kerül vissza a vezérlés és ott folytatódik, ekkor a NESTLEVEL változó értéke visszaáll 1-re.
Változó típusa: integer
04.sql: @@ OPTIONS
A változónak az egyes bitjei tárolják az értékes információt. Minden bit egy-egy tulajdonságot befolyásol. Az alábbi táblázatban látható, hogy melyik bit mire szolgál.
Változó típusa: integer
Egy-egy bitet beállítani, vagy kikapcsolni a SET paranccsal tudunk:
Ha ellenőriznünk kell, hogy egy bit beállított-e vagy sem, akkor ezt az alábbiak szerint tehetjük meg, például az ANSI_NULLS bit ellenőrzése:
Bitek jelentése:
| Bit |
Jelentése |
| 1 |
DISABLE_DEF_CNST_CHK |
| 2 |
IMPLICIT_TRANSACTIONS |
| 4 |
CURSOR_CLOSE_ON_COMMIT |
| 8 |
ANSI_WARNINGS |
| 16 |
ANSI_PADDING |
| 32 |
ANSI_NULLS |
| 64 |
ARITHABORT |
| 128 |
ARITHIGNORE |
| 256 |
QUOTED_IDENTIFIER |
| 512 |
NOCOUNT |
| 1024 |
ANSI_NULL_DFLT_ON |
| 2048 |
ANSI_NULL_DFLT_OFF |
| 4096 |
CONCAT_NULL_YIELDS_NULL |
| 8192 |
NUMERIC_ROUNDABORT |
| 16384 |
XACT_ABORT |
05.sql: @@PACK_RECEIVED, @@PACK_SENT, @@PACKET_ERRORS, @@TOTAL_READ, @@TOTAL_WRITE, @@TOTAL_ERRORS
- PACK_RECEIVED - fogadott csomagok száma
- PACK_SENT - elküldött csomagok száma
- PACKET_ERRORS - hibás csomagok száma
- TOTAL_READ - összes olvasások száma
- TOTAL_WRITE - összes írások száma
- TOTAL_ERRORS - összes hibák száma
Változók típusa: integer
SELECT @@PACK_RECEIVED as 'Fogadott csomagok száma', @@PACK_SENT as 'Elküldött csomagok száma', @@PACKET_ERRORS as 'Hibás csomagok száma', @@TOTAL_READ as 'Olvasások száma', @@TOTAL_WRITE as 'Írások száma', @@TOTAL_ERRORS as 'Hibák száma'
06.sql: @@PROCID
E példa kipróbálása előtt hozzuk létre a Northwind adatbázisba az alábbi tárolt eljárást:
CREATE PROCEDURE proc3 AS
SELECT @@PROCID AS 'Procedure Identifier'
go
A PROCID változón keresztül lekérdezhetjük az aktuális tárolt eljárás egyedi azonosítóját.
Változó típusa: integer
07.sql: @@ROWCOUNT
A ROWCOUNT változó értékéből megtudhatjuk, hogy a legutoljára végrehajtott utasítás az adott táblában hány sort érintett.
Változó típusa: integer
UPDATE Customers SET CompanyName = 'Animare Software' WHERE (CustomerID = 'AS')
select @@rowcount as 'Módosult sorok száma'
08.sql: @@SERVERNAME, @@SERVICENAME, @@SPID, @@VERSION
SERVERNAME változóból megtudhatjuk, a szerver nevét. Változó típusa: nvarchar
SERVICENAME változóból a szerviz neve derül ki (pl.:MSSQLSERVER). Változó típusa: nvarchar
SPID a bejelentkezett felhasználó azonosító száma. Változó típusa: smallint
VERSION az SQL szerver verziója, melyből megtudhatjuk azt is, hogy milyen operációs rendszeren fut (pl.: Microsoft SQL Server 2000 - 8.00.384 (Intel X86) May 23 2001 00:02:52 Copyright (c) 1988-2000 Microsoft Corporation Developer Edition on Windows NT 5.0 (Build 2195: Service Pack 2)). Változó típusa: nvarchar
SELECT @@SERVERNAME as 'Szerver név', @@SERVICENAME as 'Szerviz név', @@SPID as 'Felhasználó ID', @@VERSION as 'Szerver verzió'
Ha részletesebb verzió információkra vagyunk kíváncsiak, akkor futtassuk a következő tárolt eljárást:
09.sql: @@TEXTSIZE
A változóból kiolvashatjuk, hogy a Text, illetve az Image típusú mezők maximum hány bájtnyi adatot adnak vissza egy Select lekérdezés során.
Változó típusa: integer
SELECT @@TEXTSIZE as 'Text, Image max. mérete bájtban'
Ennek mértékét a SET utasítással állíthatjuk:
10.sql: @@TIMETICKS
A TIMETICKS egy számítógépenként változó érték, mely az adott hardvertől függ. Ez határozza meg, hogy egy ezredmásodperc egy órajel. Általában az értéke 31.25.
Változó típusa: integer