Cadeias binárias armazenam dados de bytes brutos, enquanto cadeias de caracteres armazenam texto. Use dados binários ao armazenar valores hexi-decimais, como SID
,GUID
e assim por diante. O tipo de dados uniqueidentifier contém um identificador globalmente exclusivo, ou GUID. Este valor é derivado usando a função NEWID () para retornar um valor exclusivo para todos os objetos. Ele é armazenado como um valor binário, mas é exibido como uma sequência de caracteres.
Aqui está um exemplo.
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
Aplica-se a: SQL Server O exemplo a seguir cria a tabela cust com um tipo de dados identificador exclusivo e usa NEWID para preencher a tabela com um valor padrão. Ao atribuir o valor padrão de NEWID (), cada linha nova e existente possui um valor exclusivo para a coluna Código do Cliente.
-- 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
não possui "comprimento de string" implícito; Tudo depende do formato usado no ToString (o argumento semToString
usa formatação "D"). Prefiro "B", pois é mais fácil "ver que é um GUID", mas isso é apenas familiaridade e convenção.