Schreiben internationaler Transact-SQL-AnweisungenWrite International Transact-SQL Statements

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Datenbanken und Datenbankanwendungen, die Transact-SQLTransact-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:Databases and database applications that use Transact-SQLTransact-SQL statements will become more portable from one language to another, or will support multiple languages, if the following guidelines are followed:

  • Wenn Sie mit Vorschauversion von SQL Server 2019SQL Server 2019 preview beginnen, verwenden Sie eher Folgendes:Starting with Vorschauversion von SQL Server 2019SQL Server 2019 preview, use either:

    Auf diese Weise werden Probleme mit der Codepagekonvertierung vermieden.This avoids code page conversion issues. Weitere Überlegungen finden Sie unter Speicherunterschiede zwischen UTF-8 und UTF-16.For other considerations, see Storage differences between UTF-8 and UTF-16.

  • Ersetzen Sie bis SQL Server 2017 (14.x)SQL Server 2017 (14.x) die Datentypen char, varchar und varchar(max) durch nchar, nvarchar und nvarchar(max) .Up to SQL Server 2017 (14.x)SQL Server 2017 (14.x), replace all uses of the char, varchar, and varchar(max) data types with nchar, nvarchar, and nvarchar(max). Auf diese Weise werden Probleme mit der Codepagekonvertierung vermieden.This avoids code page conversion issues. Weitere Informationen finden Sie unter Collation and Unicode Support.For more information, see Collation and Unicode Support.

    Wichtig

    Der Datentyp text ist veraltet und sollte beim Entwickeln nicht verwendet werden.The text data type is deprecated and should not be used in new development work. Konvertieren Sie text-Daten in varchar(max) .Plan to convert text data to varchar(max).

  • Verwenden Sie für Vergleiche und Vorgänge für bestimmte Monate oder Wochentage die numerischen Datumseinheiten anstelle der Namenszeichenfolgen.When doing month and day-of-week comparisons and operations, use the numeric date parts instead of the name strings. Unterschiedliche Spracheinstellungen geben verschiedene Namen für Monate und Arbeitstage zurück.Different language settings return different names for the months and weekdays. DATENAME(MONTH,GETDATE()) gibt beispielsweise May zurück, wenn die Sprache auf Englisch, Mai, wenn die Sprache auf Deutsch und mai, wenn die Sprache auf Französisch festgelegt ist.For example, DATENAME(MONTH,GETDATE()) returns May when the language is set to U.S. English, returns Mai when the language is set to German, and returns mai when the language is set to French. Verwenden Sie stattdessen eine Funktion wie DATEPART, die die Monatszahl anstelle des Namens verwendet.Instead, use a function such as DATEPART that uses the number of the month instead of the name. 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.Use the DATEPART names when you build result sets to be displayed to a user, because the date names are frequently more meaningful than a numeric representation. Codieren Sie jedoch keine Logik, die davon abhängt, ob die angezeigten Namen aus einer bestimmten Programmiersprache stammen.However, don't code any logic that depends on the displayed names being from a specific language.

  • Wenn Sie Datumseingaben in Vergleichen oder als Eingabe in INSERT- oder UPDATE-Anweisungen angeben, verwenden Sie Konstanten, die in allen Spracheinstellungen gleich interpretiert werden:When you specify dates in comparisons or for input to INSERT or UPDATE statements, use constants that are interpreted the same way for all language settings:

    • ADO-, OLE DB- und ODBC-Anwendungen sollten folgende ODBC-Timestamps und folgende ESCAPE-Klauseln für Datum und Zeit verwenden:ADO, OLE DB, and ODBC applications should use the ODBC timestamp, date, and time escape clauses of:

      { ts' yyyy - mm - dd hh : mm : ss [ . fff] '} Beispiel: { ts'1998-09-24 10:02:20'}{ ts' yyyy - mm - dd hh : mm : ss [.fff] '} such as: { ts'1998-09-24 10:02:20'}

      { d' yyyy - mm - dd '} Beispiel: { d'1998-09-24'}{ d' yyyy - mm - dd '} such as: { d'1998-09-24'}

      { t' hh : mm : ss '} Beispiel: { t'10:02:20'}{ t' hh : mm : ss '} such as: { t'10:02:20'}

    • Anwendungen, die andere APIs verwenden, oder Transact-SQLTransact-SQL -Skripts, gespeicherte Prozedure und Trigger sollten unstrukturierte Zeichenfolgen verwenden.Applications that use other APIs, or Transact-SQLTransact-SQL scripts, stored procedures, and triggers, should use the unseparated numeric strings. Zum Beispiel yyyymmdd für 19980924.For example, yyyymmdd as 19980924.

    • Anwendungen, die andere APIs oder Transact-SQLTransact-SQL-Skripts, gespeicherte Prozeduren und Trigger verwenden, 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.Applications that use other APIs, or Transact-SQLTransact-SQL scripts, stored procedures, and triggers should use the CONVERT statement with an explicit style parameter for all conversions between the time, date, smalldate, datetime, datetime2, and datetimeoffset data types and character string data types. Die folgende Anweisung wird beispielsweise für alle Verbindungseinstellungen für Sprach- oder Datumsformate gleich interpretiert:For example, the following statement is interpreted in the same way for all language or date format connection settings:

      SELECT *  
      FROM AdventureWorks2012.Sales.SalesOrderHeader  
      WHERE OrderDate = CONVERT(DATETIME, '20060719', 101)  
      

Siehe auchSee also

CAST und CONVERT (Transact-SQL) CAST and CONVERT (Transact-SQL)
DATEPART (Transact-SQL) DATEPART (Transact-SQL)
Collation and Unicode SupportCollation and Unicode Support