Création des tables SQL Server à partir des DataTable [Résolu]

cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 21 mai 2010 à 16:47 - Dernière réponse : cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention
- 8 août 2010 à 01:50
Bonjour a tous ,

SVP , J'ai des DataTable que j les crée dynamiquement par code et je voudrais créer des tables base de données SQL Server, ce qui correspond au schéma de mon objet DataTable (ou bien DataSet).
mon probleme c'est que je voudrai savoir quel est façon la plus efficace pour créer mes tables BDD , suis-je obligé de construire et exécuter des commande CREATE TABLE (sachant que je dispose d'une cinquantaine de DataTable) ?
Merci!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
PapyNormand 27 Messages postés samedi 7 août 2010Date d'inscription 16 janvier 2014 Dernière intervention - 8 août 2010 à 01:12
3
Merci
Bonjour,

La solution la 1ère proposée est toujours d'exécuter une commande CREATE TABLE ( mais il faut créer dynamiquement cette commande ).
Il existe une autre méthode qui semble complètement ignorée en France : SMO
et pourtant elle risque d'être très utile puisque c'est la seule qui puisse être utilisée avec l'apparition de sqlps ( PowerShell for Sql Server ) dans SQL Server 2008 ( il remplacera sqlcmd dès la prochaine version de SQL Server ( celle suivante de SQL Server 2008 R8 )
SMO = SQL Server Management Objects
voir :
http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.table(v=SQL.100).aspx

Attention : la documentation SMO n'a jamais été traduite en français depuis l'apparition de SMO avec SQL Server 2005
Il est assez facile de définir les colonnes de la table à partir de la structure des DataColumns d'une DataTable ( les seuls possibles problèmes concernent la clé primaire qui n'a pas forcément été définie dans la DataTable et les index qui n'existent pas dans une DataTable )

Attention : SMO a évolué entre SQL Server 2005 et 2008, si bien que les références d'assemblées et les using (VC#) et les imports (VB) peuvent avoir changé

Bonne journée

Merci PapyNormand 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 117 internautes ce mois-ci

Commenter la réponse de PapyNormand
Meilleure réponse
cs_bellak 136 Messages postés jeudi 27 décembre 2007Date d'inscription 5 mai 2011 Dernière intervention - 8 août 2010 à 01:50
3
Merci
bonjour PapyNormand,
merci pour la reponse , justement j'ai utilisé les SMO et j'ai oublié de poster la reponse.
pour les indexes sur les datatables , on peut les definir :

DataColumn[] keys = new DataColumn[2];
keys[0] = table.Columns["ID"];
keys[1] = table.Columns["NAME"];

table.PrimaryKey = keys;

encore merci

Cordialement

Merci cs_bellak 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 117 internautes ce mois-ci

Commenter la réponse de cs_bellak

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.