Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Datenbanken und Datenbankanwendungen, die Transact-SQL-Anweisungen verwenden, können leichter von einer Sprache in eine andere übertragen werden bzw. unterstützen mehrere Sprachen, wenn die folgenden Richtlinien eingehalten werden:
Ab SQL Server 2019 (15.x) und in der Azure SQL-Datenbank verwenden Sie:
- Die Datentypen char, varchar und varchar(max) mit einer UTF-8-fähigen Sortierung, deren Daten mit UTF-8 codiert sind.
- Die Datentypen nchar, nvarchar und nvarchar(max) mit einer für ergänzende Zeichen (Supplementary Characters, SC) aktivierten Sortierung. Dabei werden die Daten mit UTF-16 codiert. Die Verwendung einer Sortierung ohne SC-Unterstützung führt dazu, dass Daten mit UCS-2 codiert werden.
Auf diese Weise werden Probleme mit der Codepagekonvertierung vermieden. Weitere Überlegungen finden Sie unter Speicherunterschiede zwischen UTF-8 und UTF-16.
Ersetzen Sie bis SQL Server 2017 (14.x) die Datentypen char, varchar und varchar(max) mit nchar, nvarchar und nvarchar(max). Wird eine Sortierung mit Unterstützung für ergänzende Zeichen (SC) verwendet, werden die Daten mit UTF-16 kodiert. Die Verwendung einer Nicht-SC-Sortierung führt dazu, dass die Daten mit UCS-2 codiert werden. Auf diese Weise werden Probleme mit der Codepage-Konvertierung vermieden. Weitere Informationen finden Sie unter Sortierungs- und Unicode-Support.
Wichtig
Der Datentyp text ist veraltet und sollte beim Entwickeln nicht verwendet werden. Planen Sie, text-Daten in varchar(max) zu konvertieren.
Verwenden Sie beim Vergleichen von Monaten und Wochentagen sowie bei entsprechenden Operationen die numerischen Datumsbestandteile anstelle der Namenzeichenfolgen. Unterschiedliche Spracheinstellungen geben verschiedene Namen für Monate und Arbeitstage zurück. Beispielsweise gibt
DATENAME(MONTH,GETDATE())Mayzurück, wenn die Sprache auf US-Englisch festgelegt ist, beim Festlegen der Sprache Deutsch wirdMaiund beim Festlegen der Sprache Französischmaizurückgegeben. Verwenden Sie stattdessen eine Funktion wie DATEPART, die die Monatszahl anstelle des Namens verwendet. Verwenden Sie DATEPART-Namen, wenn Sie Resultsets erstellen, die für einen Benutzer angezeigt werden sollen, da Datumsbezeichnungen häufig aussagekräftiger sind als eine numerische Darstellung. Codieren Sie jedoch keine Logik, die davon abhängt, ob die angezeigten Namen aus einer bestimmten Programmiersprache stammen.Wenn Sie Datumsangaben in Vergleichen oder zur Eingabe in INSERT- oder UPDATE-Anweisungen angeben, verwenden Sie Konstanten, die für alle Spracheinstellungen auf die gleiche Weise interpretiert werden:
ADO-, OLE DB- und ODBC-Anwendungen sollten die ODBC-Escape-Klauseln für Zeitstempel, Datum und Uhrzeit verwenden:
{ ts'yyyy-mm-ddhh:mm:ss [.fff] '} zum Beispiel: { ts'1998-09-24 10:02:20'}
{ d'yyyy-mm-dd'} z. B.: { d'1998-09-24'}
{ t'hh:mm:ss'} zum Beispiel: { t'10:02:20'}
Anwendungen, die andere APIs, Transact-SQL-Skripte, gespeicherte Prozeduren und Trigger verwenden, sollten numerische Zeichenfolgen ohne Trennzeichen verwenden. Zum Beispiel yyyymmdd für 19980924.
Anwendungen, die andere APIs verwenden, oder Transact-SQL-Skripts, gespeicherte Prozeduren und Trigger sollten die CONVERT-Anweisung mit dem expliziten Parameter „style“ für alle Konvertierungen zwischen den Datentypen time, date, smalldate, datetime, datetime2 und datetimeoffset sowie Zeichenfolgen-Datentypen verwenden. Die folgende Anweisung wird beispielsweise für alle Verbindungseinstellungen für Sprach- oder Datumsformate gleich interpretiert:
SELECT * FROM AdventureWorks2022.Sales.SalesOrderHeader WHERE OrderDate = CONVERT(DATETIME, '20060719', 101)
Siehe auch
CAST und CONVERT (Transact-SQL)
DATEPART (Transact-SQL)
Sortierung und Unicode-Unterstützung