uniqueidentifier (Transact-SQL)uniqueidentifier (Transact-SQL)

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

Ein 16-Byte-GUID.Is a 16-byte GUID.

BemerkungenRemarks

Es gibt die folgenden Möglichkeiten, um eine Spalte oder lokale Variable vom Datentyp uniqueidentifier zu initialisieren:A column or local variable of uniqueidentifier data type can be initialized to a value in the following ways:

  • Durch die Verwendung der Funktionen NEWID oder NEWSEQUENTIALID.By using the NEWID or NEWSEQUENTIALID functions.
  • Durch die Konvertierung einer Zeichenfolgenkonstanten der Form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in der jedes x für eine hexadezimale Ziffer zwischen 0 und 9 bzw. a und f steht.By converting from a string constant in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in which each x is a hexadecimal digit in the range 0-9 or a-f. Beispielsweise ist 6F9619FF-8B86-D011-B42D-00C04FC964FF ein gültiger uniqueidentifier -Wert.For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value.

Vergleichsoperatoren können mit uniqueidentifier -Werten verwendet werden.Comparison operators can be used with uniqueidentifier values. Allerdings erfolgt das Sortieren nicht durch Vergleichen der Bitmuster der beiden Werte.However, ordering is not implemented by comparing the bit patterns of the two values. Die einzigen Operationen, die für einen uniqueidentifier-Wert ausgeführt werden können, sind Vergleiche (=, <>, <, >, <=, >=) und die Überprüfung auf NULL (IS NULL und IS NOT NULL).The only operations that can be performed against a uniqueidentifier value are comparisons (=, <>, <, >, <=, >=) and checking for NULL (IS NULL and IS NOT NULL). Es können keine weiteren arithmetischen Operatoren verwendet werden.No other arithmetic operators can be used. Alle Spalteneinschränkungen und -eigenschaften, außer der IDENTITY-Eigenschaft, können mit dem uniqueidentifier -Datentyp verwendet werden.All column constraints and properties, except IDENTITY, can be used on the uniqueidentifier data type.

Die Merge- und die Transaktionsreplikation mit Abonnements mit Update verwenden uniqueidentifier -Spalten. Dadurch wird sichergestellt, dass die Zeilen über mehrere Kopien der Tabelle hinweg eindeutig identifiziert werden.Merge replication and transactional replication with updating subscriptions use uniqueidentifier columns to guarantee that rows are uniquely identified across multiple copies of the table.

Konvertieren von uniqueidentifier-DatenConverting uniqueidentifier Data

Der uniqueidentifier -Typ wird bei der Konvertierung von Zeichenausdrücken als Zeichentyp behandelt und unterliegt daher den Kürzungsregeln für die Konvertierung in einen Zeichentyp.The uniqueidentifier type is considered a character type for the purposes of conversion from a character expression, and therefore is subject to the truncation rules for converting to a character type. Das heißt, wenn Zeichenausdrücke in einen Zeichendatentyp mit einer anderen Größe konvertiert werden, dann werden Werte, die für den neuen Datentyp zu lang sind, abgeschnitten.That is, when character expressions are converted to a character data type of a different size, values that are too long for the new data type are truncated. Siehe den Abschnitt "Beispiele".See the Examples section.

EinschränkungenLimitations and restrictions

Diese Tools und Features unterstützen den uniqueidentifier-Datentyp nicht:These tools and features do not support the uniqueidentifier data type:

BeispieleExamples

Das folgende Beispiel konvertiert einen uniqueidentifier -Wert in einen char -Datentyp.The following example converts a uniqueidentifier value to a char data type.

DECLARE @myid uniqueidentifier = NEWID();  
SELECT CONVERT(char(255), @myid) AS 'char';  

Im folgenden Beispiel wird das Abschneiden von Daten veranschaulicht, wenn der Wert zu lang für den Datentyp ist, in den er konvertiert wird.The following example demonstrates the truncation of data when the value is too long for the data type being converted to. Da der uniqueidentifier -Typ auf 36 Zeichen beschränkt ist, werden die Zeichen, die diese Länge überschreiten, abgeschnitten.Because the uniqueidentifier type is limited to 36 characters, the characters that exceed that length are truncated.

DECLARE @ID nvarchar(max) = N'0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong';  
SELECT @ID, CONVERT(uniqueidentifier, @ID) AS TruncatedValue;  

Im Folgenden finden Sie das Resultset.Here is the result set.

String                                       TruncatedValue  
-------------------------------------------- ------------------------------------  
0E984725-C51C-4BF4-9960-E1C80E27ABA0wrong    0E984725-C51C-4BF4-9960-E1C80E27ABA0  
  
(1 row(s) affected)  

Siehe auchSee also

ALTER TABLE (Transact-SQL)ALTER TABLE (Transact-SQL)
CAST und CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)CREATE TABLE (Transact-SQL)
Datentypen (Transact-SQL)Data Types (Transact-SQL)
DECLARE @local_variable (Transact-SQL)DECLARE @local_variable (Transact-SQL)
NEWID (Transact-SQL)NEWID (Transact-SQL)
NEWSEQUENTIALID (Transact-SQL) NEWSEQUENTIALID (Transact-SQL)
SET @local_variable (Transact-SQL)SET @local_variable (Transact-SQL)
Updatable Subscriptions for Transactional ReplicationUpdatable Subscriptions for Transactional Replication