Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

19 septembre 2007 3 19 /09 /septembre /2007 13:38
SQL Server 2005 –
récupérer des informations sur la base avec le T-SQL
 
Databases
/* récupérer toutes les bases de données*/
select * from sys.databases
 
Tables
/* récupérer toutes les tables de la base de données*/
select name,object_id from sys.tables
 
Columns
/* récupèrer les colonnes de la table Contact */
select * from sys.tables t,sys.columns c
where t.object_id=c.object_id
and t.name='Contact'
 
Primary key
/* récupérer les clés primaires de la table Contact*/
select * from sys.tables t,sys.indexes p
where t.object_id=p.object_id
and t.name='Contact'
 
 
Foreign keys
/* récupèrer les clés étrangères */
select * from sys.foreign_keys
select * from sys.foreign_key_columns
 
/*
select * from sys.foreign_key_columns
-donne la table clé primaire
avec referenced_object_id
-donne la table clé etrangère avec parent_object_id
*/
 
select distinct
pt.name as PK_TABLE_NAME,
ft.name as FK_TABLE_NAME,
pc.name as PK_COLUMN_NAME,
fc.name as FK_COLUMN_NAME,
f.name as RELATION_NAME
from
sys.tables pt,
sys.tables ft,
sys.columns pc,
sys.columns fc,
sys.foreign_keys f,
sys.foreign_key_columns k,
sys.indexes i
where
pt.object_id = f.referenced_object_id and
ft.object_id = f.parent_object_id and
pc.object_id = f.referenced_object_id and
fc.object_id = f.parent_object_id and
pc.column_id = k.referenced_column_id and
fc.column_id = k.parent_column_id
 
 
Procédures stockèes et paramètres
/* récupération des procédures stockées */
select * from sys.procedures
 
/* récupération des paramètres de procédure UpdateContact*/
select * from sys.procedures pr,sys.parameters pa
where pr.object_id=pa.object_id
and pr.name='UpdateContact'
 
On peut observer les vues et fonctions existantes (grâce à SQL Server Management Studio)
 
Il faut savoir également qu’en C# on peut très facilement récupèrer des informations par l’intermédiaire
De la méthode GetSchema() d’une conexion Sql (SqlConnection)
Il suffit alors de passer en paramètres le nom des éléments à rechercher ainsi que des restrictions(pour cibler)
Exemples :
DataTable dataTable = connection.GetSchema("tables")
DataTable dataTable = connection.GetSchema("tables", new string[] { null, null, "Contact",  });
DataTable dataTable = connection.GetSchema("Procedures")
DataTable dataTable = connection.GetSchema("ProcedureParameters", new string[] { null, null, "UpdateContact",  });
 
 
Vous pouvez très facilement récupérer la liste (CollectionNames) de tout ce que l’on peut rechercher avec GetSchema()
DataTable dt = Connection.GetSchema();
foreach (DataRow row in dt.Rows)
{
//row["CollectionName"]
}

Partager cet article

Repost 0
Published by Romagny13 - dans ADO.NET
commenter cet article

commentaires