Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/04/2008, 13h02   #1
Membre expérimenté
 
Inscription : septembre 2007
Messages : 1 091
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2007
Messages : 1 091
Points : 584
Points : 584
Par défaut transformer tout les Null en false

Bonjour, j'ai crée une base sql server à l'aide de SQL Server Management studio Express et je voudrais savoir s'il existe un moyen de dire que pour les "bit" par défaut il ne mette pas null mais false.

Peut-on faire cette manipulation quelque part.
Merci
tortuegenie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 21h12   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 693
Points : 8 814
Points : 8 814
Bonjour,

Malheureusement tu dois faire cela dans la commande de creation de la table, avec une contrainte DEFAULT (cela ne peut pas être géré par la création de types):

Code :
1
2
3
4
5
 
CREATE TABLE maTable
(
	maColonne BIT NOT NULL CONSTRAINT DF_maTable_maColonne DEFAULT (0)
)
Vous pouvez aussi mettre à jour votre colonne puis lui ajouter une contrainte

Code :
1
2
3
4
5
6
7
8
UPDATE maTable
SET maColonne = 0
WHERE maColonne IS NULL
GO
 
ALTER TABLE maTable
ALTER COLUMN maColonne BIT NOT NULL CONSTRAINT DF_maTable_maColonne DEFAULT (0) FOR maColonne
GO

Vous pouvez enfin choisir d'automatiser un peu le tout si vous êtes certain de vouloir passer toutes vos colonnes de type BIT au crible :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
-- Recherche de toutes les colonnes de la base courante qui ont le type BIT
DECLARE curBITColumns CURSOR FOR
	SELECT OBJECT_NAME(C.object_id) TABLES, C.name Colonnes
	FROM sys.COLUMNS C
	JOIN sys.types T ON T.system_type_id = C.system_type_id
	WHERE T.NAME = 'bit'
FOR READ ONLY;
 
DECLARE @TABLE SYSNAME,
		@colonne SYSNAME;
DECLARE @SQL VARCHAR(256);
 
-- Pour chaque colonne trouvée, on met à jour la table, on met la colonne non nullable, puis on ajoute une contrainte de valeur par défaut
OPEN curBITColumns;
FETCH NEXT FROM curBITColumns INTO @TABLE, @colonne;
WHILE @@FETCH_STATUS = 0
BEGIN
	SET @SQL = 'UPDATE ' + @TABLE + ' SET ' + @colonne '= 0 WHERE ' + @colonne + ' IS NULL; ALTER TABLE ' + @TABLE +
				'ALTER COLUMN ' + @colonne + 'BIT NOT NULL CONSTRAINT DF_' + @TABLE + '_' + @colonne + 'DEFAULT (0)'
	PRINT @SQL;
	-- EXEC (@SQL);
	FETCH NEXT FROM curBITColumns INTO @TABLE, @colonne;
END;
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 23h28   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
Avant de passer ce script il faut impérativement faire l'UPDATE pour transformer préalablement tout les Nulls en 0 dans une transaction au niveau SERIALIZABLE. Sinon entre les deux ordres SQL il se peut qu'un utilisateur mette à jour la table...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h01.


 
 
 
 
Partenaires

Hébergement Web