Ciągi binarne przechowują dane nieprzetworzone, podczas gdy ciągi znaków przechowują tekst. Korzystać z danych binarnych podczas przechowywania wartości Hexi-dziesiętne, takich jak SID
, GUID
i tak dalej. Typ danych Uniqueidentifier zawiera globalnie unikalny identyfikator lub identyfikator GUID. Ta wartość jest uzyskiwana za pomocą funkcji NEWID () w celu zwrócenia wartości unikalnej dla wszystkich obiektów. Jest przechowywany jako wartość binarna, ale jest wyświetlany jako ciąg znaków.
Oto przykład.
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
Dotyczy: SQL Server Poniższy przykład tworzy tabelę klienta z typem danych unikatowy identyfikator i używa NEWID do wypełnienia tabeli wartością domyślną. Przypisując domyślną wartość NEWID (), każdy nowy i istniejący wiersz ma unikalną wartość dla kolumny 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
nie ma niejawnej „długości łańcucha”; Wszystko zależy od formatu użytego w ToString (brak argumentuToString
używa formatowania „D”). Wolę „B”, ponieważ łatwiej jest „zobaczyć, że to GUID”, ale to tylko znajomość i konwencja.