İkili dizeler ham bayt verilerini depolarken, karakter dizeleri metni depolar. Gibi Hexi-ondalık değerleri saklarken ikili veriler kullanın SID
, GUID
vb. Benzersiz tanımlayıcı veri türü, genel olarak benzersiz bir tanımlayıcı veya GUID içerir. Bu değer, tüm nesnelere özgü bir değer döndürmek için NEWID () işlevi kullanılarak türetilir. İkili değer olarak depolanır, ancak karakter dizesi olarak görüntülenir.
İşte bir örnek.
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
Aşağıdakilere uygulanır: SQL Server Aşağıdaki örnek, benzersiz bir tanımlayıcı veri türüne sahip döküm tablosunu oluşturur ve tabloyu varsayılan bir değerle doldurmak için NEWID kullanır. Varsayılan NEWID () değerini atarken, her yeni ve mevcut satırın CustomerID sütunu için benzersiz bir değeri vardır.
-- 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
örtük "dize uzunluğu" yoktur; Her şey ToString'de kullanılan biçime bağlıdır (bağımsız değişkenToString
"D" biçimlendirmesini kullanır). "Bir GUID olduğunu görmek" daha kolay olduğu için "B" yi tercih ederim, ama bu sadece aşinalık ve konvansiyon.