Binäre Zeichenfolgen speichern Rohbyte-Daten, während Zeichenfolgen Text speichern. Verwenden von Binärdaten , wenn hexi-Dezimalwerte wie Speicher SID
, GUID
und so weiter. Der Datentyp der eindeutigen Kennung enthält eine global eindeutige Kennung oder GUID. Dieser Wert wird mithilfe der Funktion NEWID () abgeleitet, um einen Wert zurückzugeben, der für alle Objekte eindeutig ist. Es wird als Binärwert gespeichert, aber als Zeichenfolge angezeigt.
Hier ist ein Beispiel.
USE AdventureWorks2008R2;
GO
CREATE TABLE MyCcustomerTable
(
user_login varbinary(85) DEFAULT SUSER_SID()
,data_value varbinary(1)
);
GO
INSERT MyCustomerTable (data_value)
VALUES (0x4F);
GO
Gilt für: SQL Server Im folgenden Beispiel wird die cust-Tabelle mit einem Datentyp mit eindeutiger Kennung erstellt und mit NEWID die Tabelle mit einem Standardwert gefüllt. Beim Zuweisen des Standardwerts von NEWID () hat jede neue und vorhandene Zeile einen eindeutigen Wert für die Spalte CustomerID.
-- Creating a table using NEWID for uniqueidentifier data type.
CREATE TABLE cust
(
CustomerID uniqueidentifier NOT NULL
DEFAULT newid(),
Company varchar(30) NOT NULL,
ContactName varchar(60) NOT NULL,
Address varchar(30) NOT NULL,
City varchar(30) NOT NULL,
StateProvince varchar(10) NULL,
PostalCode varchar(10) NOT NULL,
CountryRegion varchar(20) NOT NULL,
Telephone varchar(15) NOT NULL,
Fax varchar(15) NULL
);
GO
-- Inserting 5 rows into cust table.
INSERT cust
(CustomerID, Company, ContactName, Address, City, StateProvince,
PostalCode, CountryRegion, Telephone, Fax)
VALUES
(NEWID(), 'Wartian Herkku', 'Pirkko Koskitalo', 'Torikatu 38', 'Oulu', NULL,
'90110', 'Finland', '981-443655', '981-443655')
,(NEWID(), 'Wellington Importadora', 'Paula Parente', 'Rua do Mercado, 12', 'Resende', 'SP',
'08737-363', 'Brasil', '(14) 555-8122', '')
,(NEWID(), 'Cactus Comidas para Ilevar', 'Patricio Simpson', 'Cerrito 333', 'Buenos Aires', NULL,
'1010', 'Argentina', '(1) 135-5555', '(1) 135-4892')
,(NEWID(), 'Ernst Handel', 'Roland Mendel', 'Kirchgasse 6', 'Graz', NULL,
'8010', 'Austria', '7675-3425', '7675-3426')
,(NEWID(), 'Maison Dewey', 'Catherine Dewey', 'Rue Joseph-Bens 532', 'Bruxelles', NULL,
'B-1180', 'Belgium', '(02) 201 24 67', '(02) 201 24 68');
GO
Guid.NewGuid
hat keine implizite "Zeichenfolgenlänge"; Es hängt alles vom Format ab, das im ToString verwendet wird (das No-ArgumentToString
verwendet die Formatierung "D"). Ich bevorzuge "B", da es einfacher ist, "zu erkennen, dass es sich um eine GUID handelt", aber das ist nur Vertrautheit und Konvention.