Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 08/06/2011, 10h30   #1
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Par défaut [SQL Server 2008] Ajout dans une Base de donnees seulement si la ligne n'exite pas

Bonjour,

J'ai cru comprendre que ON DUPLICATE KEY UPDATE etait en fait exclusif a Mysql !?!
Je cherche donc un substitue a cette fonction.
J'ai vu qu'il y avait avec SQL server 2008 la fonction MERGE mais elle ne correspond pas vraiment a ce que je veux car si j'ai bien compris c'est lorsqu'on a deux tables et que l'on veut en mettre une a jour grace a l'autre !?!

Du coup existe-il quelquechose qui me permette de controler si une entree existe deja dans l'UNIQUE table de ma BDD et si oui de ne pas ajouter cet entree ?

Merci de votre aide,

Mathieu
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 10h47   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 954
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 954
Points : 17 774
Points : 17 774
Effectivement MySQL qui est très limité (a lire http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/) implémente tout un tas de truc hors norme pour tenter de palier ses défauts.
la solution est effectivement MERGE (norme SQL)
MERGE fonctionne aussi bien avec une table que des valeurs.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
MERGE INTO T_WEB_PAGE_HIT AS CIBLE
USING (SELECT 'www.MonSite.com/MaPage.html' AS PAGE_HIT) AS SOURCE
ON CIBLE.PAGE = SOURCE.PAGE_HIT
WHEN MATCHED 
   UPDATE
   SET HIT = HIT + 1
WHEN NOT MATCHED
   INSERT (PAGE, HIT)
   SELECT PAGE_HIT, 1
   FROM   SOURCE;
Ceci rajoute la ligne dans la table si la page www.MonSite.com/MaPage.html' n'existe pas en initialisant le compteur de hit à 1, sinon, si la page est trouvée, on incrémente le compteur de hit.

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 20
Vieux 08/06/2011, 11h04   #3
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Je n'ai pas encore totalement compris le fonctionnement de cette commande mais je commence a comprendre certaines choses.

Par contre j'aimerais en faite controler si deux des champs de ma ligne existe ou non dans ma table.
Je m'explique :

J'ai une table [Variables] avec 8 champs (Name, Description, Type, Min, Max, Feature, Storage, FileName).
Cette table possede la cle primaire (Name, FileName).
Ce que je voudrais donc c'est a chaque ligne que je veux inserer dans ma table [Variables] ma requete controle si la cle n'existe pas deja (et donc n'ajoute pas la ligne) et si elle n'existe pas, ajoute ma ligne.

Donc est-ce que cette requete vous semble correcte ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
 
MERGE INTO VARIABLES AS CIBLE
USING (SELECT @Name, @FileName AS NAME, FILE) AS SOURCE
ON CIBLE.Name = SOURCE.NAME AND CIBLE.FileName = SOURCE.FILE
WHEN MATCHED 
   UPDATE
   SET HIT = HIT + 1
WHEN NOT MATCHED
   INSERT (NAME, FILE)
   SELECT NAME, FILE, 1
   FROM   SOURCE;
Desole s'il y a des trucs immondes ^^
Dois-je obligatoirement faire un UPDATE si la ligne existe ?

EDIT : Je travaille avec Visual C# 2010 Express Edition (d'ou les @)

EDIT bis : Je viens de me rendre compte que je dois verifier la ligne entiere et pas seulement la cle non ? Sinon il y a un probleme lorsque j'ajoute ma ligne a ma table ^^
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 11h24   #4
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Voici ma nouvelle requete :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
 
MERGE INTO VARIABLES 
USING (SELECT @Name, @Description, @Type, @Min, @Max, @Feature, @Storage, @FileName AS NAME, DESC, TYPE, MIN, MAX, FEAT, STOR, FILE) AS SOURCE 
ON VARIABLES.Name = SOURCE.NAME AND VARIABLES.FileName = SOURCE.FILE 
WHEN MATCHED 
    UPDATE 
    SET HIT = HIT + 1 
WHEN NOT MATCHED 
    INSERT (Name, Description, Type, Min, Max, Feature, Storage, FileName)    
    SELECT NAME, DESC, TYPE, MIN, MAX, FEAT, STOR, FILE 
    FROM SOURCE
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h29   #5
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Bonjour,

MERGE n'est pas fait pour cela.
L'intérêt de MERGE est d'avoir la possibilité, en une seule transaction, de réaliser à la fois un INSERT et un UPDATE (ou un DELETE).
Dans votre cas, on pourrait avoir :

- Si la ligne existe, on la met à jour (UPDATE)
- Si elle n'existe pas, on l'ajoute (INSERT).

Pour résoudre votre problème, une demi-jointure gauche suffit :

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
25
26
27
28
29
30
31
32
INSERT	INTO dbo.VARIABLES
(
	Name
	, Description
	, Type
	, Min
	, Max
	, Feature
	, Storage
	, FileName
)
SELECT		@Name
		, @Description
		, @Type
		, @Min
		, @Max
		, @Feature
		, @Storage
		, @FileName AS NAME
		, A.DESC
		, A.TYPE
		, A.MIN
		, A.MAX
		, A.FEAT
		, A.STOR
		, A.FILE
FROM		dbo.uneAutreTable AS A
LEFT JOIN	dbo.VARIABLES AS V
			ON V.Name = A.Name
			AND V.FileName = A.???
WHERE		V.name IS NULL
AND		V.??? IS NULL
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h36   #6
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
En gros je dois creer une table (celle que vous appelez "uneAutreTable") ?

Hum j'ai pas tout saisi en faite.

Est-il possible d'expliquer les differentes partie de la requete svp ?
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h37   #7
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Comment sont valuées toutes les variables de votre requête ?

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h40   #8
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Ce sont toutes des Varchar
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h42   #9
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
ça c'est leur type, par leur valeur

Comment ces variables prennent elles-une valeur ?
C'est à dire : comment les affectez-vous ?

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h49   #10
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
^^ desole !

Je vais vous raconter l'histoire depuis le debut alors :

J'ai donc des variables (possedant plusieurs attributs).
Dans mon programme ces variables sont stockees dans une List<CBase> (que je vais appeler "basic")
CBase etant une classe que j'ai cree possedant les attributs Name, Description, ...
Donc chaque variable est une CBase

et les variables de ma requete sont
@Name = basic[indice].Name
@Description = basic[indice].Description
...

EDIT : Ne me vouvoyez pas please ^^
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h00   #11
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Pardon : quand je parlais de variable, j'entendais @Name, @Description, @Type, @Min, @Max, @Feature, @Storage, @FileName.

Sont-elles valuées par votre application ?

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h16   #12
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
oui c'est ce que j'ai explique ^^ les valeurs viennent d'une List<CBase> et chaque variable @Name, @Description, ... represente respectivement l'attribut Name de CBase, l'attribut Description de CBase, ...

En gros mes variables sont valuees grace a un tableau de String ^^

Est-ce plus clair ?
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h23   #13
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Pour etre plus clair j'ai :

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
25
26
27
28
 
 
SqlCommand selection = new SqlCommand("La commande que je cherche utilisant @Name, @Description,...", form1.con);
selection .Parameters.ADD(new SqlParameter("@Name", SqlDbType.VarChar, 400));
selection .Parameters["@Name"].Value = basic[i].Name1;
 
selection .Parameters.ADD(new SqlParameter("@Description", SqlDbType.VarChar, 400));
selection .Parameters["@Description"].Value = basic[i].Description;
 
selection .Parameters.ADD(new SqlParameter("@Type", SqlDbType.VarChar, 400));
selection .Parameters["@Type"].Value = basic[i].Type;
 
selection .Parameters.ADD(new SqlParameter("@Min", SqlDbType.VarChar, 400));
selection .Parameters["@Min"].Value = basic[i].Min;
 
selection .Parameters.ADD(new SqlParameter("@Max", SqlDbType.VarChar, 400));
selection .Parameters["@Max"].Value = basic[i].Max;
 
selection .Parameters.ADD(new SqlParameter("@Feature", SqlDbType.VarChar, 400));
selection .Parameters["@Feature"].Value = basic[i].Feature;
 
selection .Parameters.ADD(new SqlParameter("@Storage", SqlDbType.VarChar, 400));
selection .Parameters["@Storage"].Value = basic[i].Storage;
 
selection .Parameters.ADD(new SqlParameter("@FileName", SqlDbType.VarChar, 400));
selection .Parameters["@FileName"].Value = basic[i].FileName;
 
selection .ExecuteNonQuery();
Et chaque basi[i].truc represente un String venant d'une List
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h29   #14
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Fiou ! c'est long ! Un appel à une procédure stockée est si simple !

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
CREATE PROCEDURE maProcedure
	@Name [type]
	, @Description [type]
	, @Type [type]
	, @Min [type]
	, @Max [type]
	, @Feature [type]
	, @Storage [type]
	, @FileName [type]
AS
BEGIN
	SET NOCOUNT ON
 
	IF NOT EXISTS
	(
		SELECT	*
		FROM	dbo.VARIABLES
		WHERE	Name = @Name
		AND	FileName = @FileName
 
	)
	BEGIN
		INSERT	INTO dbo.VARIABLES
		(
			Name
			, Description
			, Type
			, Min
			, Max
			, Feature
			, Storage
			, FileName
		)
		VALUES
		(
			@Name
			, @Description
			, @Type
			, @Min
			, @Max
			, @Feature
			, @Storage
			, @FileName
		)
	END
END
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 14h08   #15
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
J'ai donc fait :

Code :
1
2
3
4
 
 
SqlCommand procedure = new SqlCommand("CREATE PROCEDURE InsertionVariable @Name VARCHAR(400), ...",form1.con);
procedure.ExecuteNonQuery();
Pour pouvoir l'utiliser je fais comment ?

Code :
1
2
3
4
 
 
SqlCommand addVar = new SqlCommand("EXECUTE InsertionVariable basic[i].Name, basic[i].Description, ...",form1.con);
addVar.ExecuteNonQuery();
Est-ce qu'il va comprendre ce qu'est basic[i].Name, ... alors qu'il est entre " " ?
Ou est-ce qu'il faut que je fasse :

Code :
1
2
3
4
 
 
SqlCommand addVar = new SqlCommand("EXECUTE InsertionVariable " + basic[i].Name + "," + basic[i].Description + "," +...",form1.con);
addVar.ExecuteNonQuery();
(Le SQL c'est pas mon fort desole ...)
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h35   #16
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Une procédure stockée est un object de base de données.
On peut aussi créer des fonctions, des vues, des triggers, ...

C'est un groupe d'instructions que l'on peut exécuter en lui passant (ou pas) des paramètres.
Donc la procédure stockée que je vous ai donnée doit être créée dans votre base de données à l'aide de SQL Server Management Studio.

Une fois cela fait il suffit d'appeler votre procédure stockée dans votre code.
Cette page devrait vous y aider.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/06/2011, 14h44   #17
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Ahah je suis vraiment pas doue ^^

En tout cas merci beaucoup j'ai reussi a faire marcher la commande tout comme vous disiez

Je vous parle meme pas de ce a quoi ressemblait ma methode d'ajout d'info a la BDD dans mon programme avant votre intervention ... Vous pleureriez je crois Mon code a juste etez divise par 1000 ^^

Merci d'avoir pris du temps pour me repondre et pour m'aider ! J'ai decouvert les procedures stockees grace a vous (J'apprend le SQL tout seul ...) et effectivement elles simplifient la vie !

Encore merci,

Mathieu
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 14h49   #18
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Citation:
Ahah je suis vraiment pas doue ^^
Non, vous ne saviez pas, ce qui est tout à fait différent

Citation:
Mon code a juste etez divise par 1000 ^^
Je n'en doute pas. Un peu de lecture
Ici je montre l'intérêt de l'utilisation des procédures stockées.

Citation:
Merci d'avoir pris du temps pour me repondre et pour m'aider !
Avec plaisir

Citation:
J'ai decouvert les procedures stockees grace a vous (J'apprend le SQL tout seul ...) et effectivement elles simplifient la vie !
Malheureusement on apprend peu de choses sur les bases de données à l'école, et comme les entreprises sont peu enthousiastes à la formation ...
Je suis passé à peu près par le même problème.
Je vous conseille de lire le site de SQLPro, qui est très riche.
Vous pouvez aussi jeter un oeil aux blogs SQL Server.
Vous pouvez également lire les ouvrages d'Itzik Ben-Gan et Sajal Dam.

A bientôt !

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h11   #19
Membre à l'essai
 
Homme Mathieu
Étudiant
Inscription : mai 2011
Messages : 86
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 86
Points : 21
Points : 21
Oui c'est le moins qu'on puisse dire a l'ecole on ne nous apprend pas grand chose sur les BDD.

Je comprend maintenant pourquoi ce cours s'appelait "INTRODUCTION aux bases de donnees" en premiere annee mais en deuxieme annee ils auraient mieux fait de l'appeler pareil ^^

Je suis en stage en Angleterre actuellement et je detestait les base de donnees en arrivant mais mon tuteur m'a donne a realiser un logiciel utilisant les BDD mais apres avoir passe du temps a essayer de comprendre comment ca marche je commence limite a les appreciees !

Et encore un peu plus grace a toi elsuket !

Sur ce, a bientot pour un de mes futurs problemes
poupou63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 16h13   #20
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
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 669
Points : 8 729
Points : 8 729
Pour ma part j'ai haï le cours de bases de données de première année d'IUT ... bon, il n'y avait pas de TP aussi !

En deuxième année, j'ai demandé à mon professeur s'il y a des formations qui permettent de devenir DBA junior ... et je crois qu'il n'en existe pas dans le monde
Quelque part je comprend pourquoi, mais je trouve aussi cela stupide.

Citation:
Et encore un peu plus grace a toi elsuket !
Merci

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h48.


 
 
 
 
Partenaires

Hébergement Web