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
Az Transact-SQL utasításokat használó adatbázisok és adatbázis-alkalmazások hordozhatóbbá válnak az egyik nyelvről a másikra, vagy több nyelvet is támogatnak, ha az alábbi irányelveket követik:
Az SQL Server 2019 -től (15.x) és az Azure SQL Database-től kezdve használja a következőt:
- A char, varchar és varchar(max) adattípusok UTF-8-kompatibilis rendezéssel, és az adatok kódolása UTF-8 használatával történik.
- Az nchar, nvarchar és nvarchar(max) adattípusok kiegészítő karakterekkel (SC) engedélyezett rendezéssel, és az adatok UTF-16-tal vannak kódolva. Nem SC-rendezés esetén az adatok kódolása UCS-2 használatával történik.
Ezzel elkerülheti a kódlapkonverzióval kapcsolatos problémákat. További szempontokat az UTF-8 és az UTF-16 közötti Tárolási különbségek című témakörben talál.
Az SQL Server 2017 (14.x) verziójáig cserélje le a char, varchar és varchar(max) adattípusok minden használatát nchar, nvarchar és nvarchar(max) adattípusokra. Ha kiegészítő karaktert (SC) támogató rendezést használ, az adatok UTF-16-tal vannak kódolva. Nem SC-rendezés esetén az adatok kódolása UCS-2 használatával történik. Ezzel elkerülheti a kódlapkonverzióval kapcsolatos problémákat. További információ: kolláció és Unicode-támogatás.
Fontos
A szöveges adattípus elavult, és nem használható új fejlesztési munkákhoz. Tervezze meg, hogy a szöveges adatokat varchar(max) értékre konvertálja.
Ha hónap és nap összehasonlítást és műveleteket végez, a névsztringek helyett használja a numerikus dátumrészeket. A különböző nyelvi beállítások különböző neveket adnak vissza a hónapokra és a hétköznapokra vonatkozóan. Például akkor ad vissza
DATENAME(MONTH,GETDATE()),Mayha a nyelv amerikai angolra van állítva, akkor adja visszaMai, ha a nyelv németre van állítva, és akkor tér visszamai, ha a nyelv francia nyelvre van állítva. Ehelyett használjon olyan függvényt, mint a DATEPART , amely a hónap számát használja a név helyett. A DATEPART-neveket akkor használja, amikor eredményhalmazokat hoz létre, hogy megjelenjenek egy felhasználó számára, mivel a dátumnevek gyakran jelentéssel bírnak, mint egy numerikus ábrázolás. Ne kódjon azonban olyan logikát, amely attól függ, hogy a megjelenített nevek egy adott nyelvről származnak-e.Amikor dátumokat ad meg összehasonlításokban, vagy az INSERT vagy UPDATE utasítások bemeneteként, használjon minden nyelvi beállításnál azonosan értelmezett állandókat.
Az ADO-, OLE DB- és ODBC-alkalmazásoknak a következő ODBC-időbélyegeket, dátum- és időfelszabadító záradékokat kell használniuk:
{ ts'yyyy-mm-ddhh:mm:ss [.fff] '} például: { ts'1998-09-24 10:02:20'}
{ d'yyyy-mm-dd'} például: { d'1998-09-24'}
{ t'hh:mm:ss'} például: { t'10:02:20'}
Az egyéb API-kat vagy Transact-SQL szkripteket, tárolt eljárásokat és triggereket használó alkalmazásoknak az elválasztatlan numerikus sztringeket kell használniuk. Például yyyymmdd mint 19980924.
Az egyéb API-kat vagy Transact-SQL szkripteket, tárolt eljárásokat és eseményindítókat használó alkalmazásoknak explicit stílusparaméterrel kell használniuk a CONVERT utasítást az idő, a dátum, a kisdátum, a datetime, a datetime2 és a datetimeoffset adattípus és a karaktersztring adattípus közötti összes konverzióhoz. A rendszer például a következő utasítást ugyanúgy értelmezi az összes nyelvi vagy dátumformátum-kapcsolati beállítás esetében:
SELECT * FROM AdventureWorks2022.Sales.SalesOrderHeader WHERE OrderDate = CONVERT(DATETIME, '20060719', 101)
Lásd még
CAST és CONVERT (Transact-SQL)
DATEPART (Transact-SQL)
Karakterhalmaz rendezés és Unicode támogatás