Les chaînes binaires stockent RAW- octet de données, tandis que les chaînes de caractères stockent du texte. Utilisez des données binaires lors du stockage des valeurs hexi-décimales telles que SID
, GUID
et ainsi de suite. Le type de données uniqueidentifier contient un identificateur global unique ou GUID. Cette valeur est dérivée à l'aide de la fonction NEWID() pour renvoyer une valeur unique à tous les objets. Il est stocké en tant que valeur binaire mais il est affiché sous la forme d'une chaîne de caractères.
Voici un exemple.
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
S'applique à: SQL Server L'exemple suivant crée la table Cust avec un type de données uniqueidentifier et utilise NEWID pour remplir le tableau avec une valeur par défaut. Lors de l'affectation de la valeur par défaut de NEWID(), chaque ligne nouvelle et existante a une valeur unique pour la colonne 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
Remarque: 'Guid.NewGuid' n'a pas de" longueur de chaîne "implicite; Tout dépend du format utilisé dans [ToString] (http://msdn.microsoft.com/fr-fr/library/97af8hh4.aspx) (Le format sans argument 'ToString' utilise le formatage" D "). Je préfère "B" car il est plus facile de "voir que c'est un GUID", mais c'est juste de la familiarité et de la convention. –
pourquoi ne pas simplement l'enregistrer comme identificateur unique 16 bits? –