Binärketten speichern Roh- Byte-Daten, während Zeichenketten Text speichern. Verwenden Sie Binärdaten beim Speichern von Hexadezimalwerten wie SID
, GUID
und so weiter. Der Datentyp uniqueidentifier enthält eine global eindeutige ID oder GUID. Dieser Wert wird abgeleitet, indem die NEWID() - Funktion einen Wert zurückgibt, der für alle Objekte eindeutig ist. Es wird als Binärwert gespeichert, aber es wird als Zeichenkette 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
Betrifft: SQL Server Das folgende Beispiel zeigt die Tabelle cust mit einem Uniquedatentyp erzeugt und verwendet NEWID die Tabelle mit einem Standardwert zu füllen. Wenn Sie den Standardwert NEWID() zuweisen, weist jede neue und vorhandene Zeile einen eindeutigen Wert für die Spalte CustomerID auf.
-- 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
Hinweis: 'Guid.NewGuid' hat keine implizite" String-Länge "; Alles hängt von dem Format ab, das in [ToString] (http://msdn.microsoft.com/en-us/library/97af8hh4.aspx) verwendet wird (das Argument "ToString" verwendet die Formatierung "D"). Ich bevorzuge "B", da es einfacher ist zu sehen, dass es eine GUID ist, aber das ist nur Vertrautheit und Konvention. –
warum speichern Sie es nicht einfach als 16byte uniqueidentifier? –