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.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Egész számadatokat használó pontos szám típusú adattípusok. Ha helyet szeretne menteni az adatbázisban, használja a legkisebb adattípust, amely megbízhatóan tartalmazza az összes lehetséges értéket. A tinyint például elegendő lehet egy állapotértékekkel rendelkező kis keresési táblához, mert akár 256 sort is tárolhat. De a tinyint nem elegendő az alkalmazottak listájához, mert a vállalata több száz vagy több ezer alkalmazottal rendelkezhet.
| Adattípus | Range | Tartománykifejezés | Storage |
|---|---|---|---|
| bigint | -9 223 372 036 854 775 808–9 223 372 036 854 775 807 | -2^63–2^63-1 | 8 bájt |
| int | -2 147 483 648–2 147 483 647 | -2^31 –2^31-1 | 4 bájt |
| smallint | -32 768–32 767 | -2^15–2^15-1 | 2 bájt |
| tinyint | 0–255 | 2^0-1 –2^8-1 | 1 bájt |
Remarks
Az int adattípus az SQL Server elsődleges egész adattípusa. A bigint adattípus akkor használható, ha az egész számértékek túlléphetik az int adattípus által támogatott tartományt .
bigint illeszkedik a smallmoney és az int között az adattípus-elsőbbségi diagramban.
A függvények csak akkor adnak vissza bigint értéket, ha a paraméterkifejezés bigint adattípus. Az SQL Server nem előléptet automatikusan más egész adattípusokat (tinyint, smallint és int) a bigint értékre.
Átalakítás és paraméterezés
Ha a +, , -, */, vagy % aritmetikai operátorokkal implicit vagy explicit konverziót hajt végre az int, smallint, tinyint vagy bigint állandó értékek lebegőpontos, valós, decimális vagy numerikus adattípusokra, az SQL Server által alkalmazott szabályok a kifejezés eredményeinek adattípusának és pontosságának kiszámításakor eltérnek attól függően, hogy a lekérdezés automatikusan van-e elválasztva vagy sem.
Ezért a lekérdezésekben lévő hasonló kifejezések néha eltérő eredményeket eredményezhetnek. Ha egy lekérdezés nincs automatikusan elválasztva, az állandó érték először decimálissá lesz konvertálva, amelynek pontossága elég nagy ahhoz, hogy az állandó értékét megtartsa, mielőtt a megadott adattípusra konvertálná. Az állandó érték 1 például decimális(1,0) lesz, az állandó érték 250 pedig decimális(3,0) lesz.
Ha egy lekérdezés automatikusan van elválasztva, az állandó érték mindig decimális (10,0) lesz, mielőtt a végső adattípusra konvertálná. Ha a / operátor részt vesz, nem csak az eredménytípus pontossága különbözhet a hasonló lekérdezések között, de az eredmény értéke is eltérhet. A kifejezést SELECT CAST (1.0 / 7 AS float)tartalmazó automatikus lekérdezés eredményértéke például eltér ugyanannak a lekérdezésnek az eredményértékétől, amely nem automatikusan van elválasztva, mert az automatikus lekérdezés eredményei csonkulnak, hogy illeszkedjenek a decimális (10,0) adattípusba.
Az apró adattípus nem támogatott a Microsoft Fabricben.
Egész szám adatainak konvertálása
Ha az egész számok implicit módon karakteradat-típussá alakulnak, ha az egész szám túl nagy ahhoz, hogy beleférjen a karaktermezőbe, az SQL Server AZ ASCII 42 karaktert, a csillagot (*) használja.
A 2 147 483 647-nél nagyobb egész számállandók decimális adattípusra lesznek konvertálva, nem pedig bigint adattípusra. Az alábbi példa azt mutatja be, hogy a küszöbérték túllépésekor az eredmény adattípusa egy int értékről decimálisra változik.
SELECT 2147483647 / 2 AS Result1,
2147483649 / 2 AS Result2;
Itt van az eredmények összessége.
Result1 Result2
----------- ------------------
1073741823 1073741824.500000
Examples
Az alábbi példa egy táblát hoz létre a bigint, int, smallint és tinyint adattípusokkal. A rendszer minden oszlopba beszúr értékeket, és visszaadja az SELECT utasítást.
CREATE TABLE dbo.MyTable
(
MyBigIntColumn BIGINT,
MyIntColumn INT,
MySmallIntColumn SMALLINT,
MyTinyIntColumn TINYINT
);
GO
INSERT INTO dbo.MyTable
VALUES (9223372036854775807, 2147483647, 32767, 255);
GO
SELECT MyBigIntColumn,
MyIntColumn,
MySmallIntColumn,
MyTinyIntColumn
FROM dbo.MyTable;
Itt van az eredmények összessége.
MyBigIntColumn MyIntColumn MySmallIntColumn MyTinyIntColumn
-------------------- ----------- ---------------- ---------------
9223372036854775807 2147483647 32767 255