data type pour 2 choix

Le
Fred
Bonjour,
Suis en train de créer une table avec une colonne "eServiceName". Dans cette
table je ne peux avoir que 2 choix: soit "microsoft" soit "belgacom". Pour ce
faire, quel genre de datatype puis-je choisir (sql server 2008) ?
Merci d'avance,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
EmanuelL
Le #20294201
Salut Fred,

CREATE TABLE [dbo].[Test](
[No_Ligne] [int] IDENTITY(1,1) NOT NULL,
[eServiceName] [varchar](20) NOT NULL
CONSTRAINT [PK_No_Ligne]
PRIMARY KEY CLUSTERED(No_Ligne ASC)
CHECK ([eServiceName] IN ('Belgacom', 'Microsoft')));

Une autre solution serait de créer une table ServiceName et de mettre
les 2 lignes, ensuite dans la table Test tu ajoutes sa clef primaire
comme clef étrangère, voir exemple ci-dessous.

CREATE TABLE [dbo].[eService](
[eService_Id] [int] IDENTITY(1,1) NOT NULL,
[eServiceName] [varchar](20) NOT NULL
CONSTRAINT [PK_eService_Id]
PRIMARY KEY CLUSTERED(eService_Id ASC));
GO

INSERT INTO [dbo].[eService]([eServiceName])
VALUES('Belgacom')
GO

INSERT INTO [dbo].[eService]([eServiceName])
VALUES('Microsoft')
GO


CREATE TABLE [dbo].[Test](
[No_Ligne] [int] IDENTITY(1,1) NOT NULL,
[eService_Id] [int] NOT NULL
CONSTRAINT [PK_No_Ligne]
PRIMARY KEY CLUSTERED(No_Ligne ASC));
GO

ALTER TABLE [dbo].[Test]
WITH CHECK ADD CONSTRAINT [FK_Test_eService_Id_ESTE]
FOREIGN KEY([eService_Id])
REFERENCES [dbo].[eService] ([eService_Id]);
GO

ALTER TABLE [dbo].[Test]
CHECK CONSTRAINT [FK_Test_eService_Id_ESTE];
GO

A+ ;-)



Fred avait soumis l'idée :
Bonjour,
Suis en train de créer une table avec une colonne "eServiceName". Dans cette
table je ne peux avoir que 2 choix: soit "microsoft" soit "belgacom". Pour ce
faire, quel genre de datatype puis-je choisir (sql server 2008) ?
Merci d'avance,



--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Fred
Le #20298041
Parfait, merci bcp !

"EmanuelL" a écrit :

Salut Fred,

CREATE TABLE [dbo].[Test](
[No_Ligne] [int] IDENTITY(1,1) NOT NULL,
[eServiceName] [varchar](20) NOT NULL
CONSTRAINT [PK_No_Ligne]
PRIMARY KEY CLUSTERED(No_Ligne ASC)
CHECK ([eServiceName] IN ('Belgacom', 'Microsoft')));

Une autre solution serait de créer une table ServiceName et de mettre
les 2 lignes, ensuite dans la table Test tu ajoutes sa clef primaire
comme clef étrangère, voir exemple ci-dessous.

CREATE TABLE [dbo].[eService](
[eService_Id] [int] IDENTITY(1,1) NOT NULL,
[eServiceName] [varchar](20) NOT NULL
CONSTRAINT [PK_eService_Id]
PRIMARY KEY CLUSTERED(eService_Id ASC));
GO

INSERT INTO [dbo].[eService]([eServiceName])
VALUES('Belgacom')
GO

INSERT INTO [dbo].[eService]([eServiceName])
VALUES('Microsoft')
GO


CREATE TABLE [dbo].[Test](
[No_Ligne] [int] IDENTITY(1,1) NOT NULL,
[eService_Id] [int] NOT NULL
CONSTRAINT [PK_No_Ligne]
PRIMARY KEY CLUSTERED(No_Ligne ASC));
GO

ALTER TABLE [dbo].[Test]
WITH CHECK ADD CONSTRAINT [FK_Test_eService_Id_ESTE]
FOREIGN KEY([eService_Id])
REFERENCES [dbo].[eService] ([eService_Id]);
GO

ALTER TABLE [dbo].[Test]
CHECK CONSTRAINT [FK_Test_eService_Id_ESTE];
GO

A+ ;-)



Fred avait soumis l'idée :
> Bonjour,
> Suis en train de créer une table avec une colonne "eServiceName". Dans cette
> table je ne peux avoir que 2 choix: soit "microsoft" soit "belgacom". Pour ce
> faire, quel genre de datatype puis-je choisir (sql server 2008) ?
> Merci d'avance,

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org





Publicité
Poster une réponse
Anonyme