Bonjour,
Ne connaissant pas sqlserver, je cherche à faire une requête ou une procédure stockée, me permettant d'extraire de la base les ordres sql de création des tables et les contraintes d'intégrité
Merci de votre aide
Bonjour,
Ne connaissant pas sqlserver, je cherche à faire une requête ou une procédure stockée, me permettant d'extraire de la base les ordres sql de création des tables et les contraintes d'intégrité
Merci de votre aide
bonjour,
Si c'est pour un besoin ponctuel, vous pouvez utiliser l'assistant de génération de scripts disponible dans Management Studio.
Sinon, pour les tables, voici un petit script.
Pour les contraintes, je n'en ai pas encore fait ...
@++
Merci, j'ai fait un essai avec une table, c'est parfait,
mais pour faire une boucle sur toutes les tables, puis je faire :
Je suis novice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 DECLARE @nom_table varchar(25) DECLARE c1 CURSOR FOR SELECT table_name FROM information_schema.tables where table_type='BASE TABLE' -- DEBUT open c1 FETCH FROM c1 INTO @nom_table IF @@FETCH_STATUS = 0 BEGIN BOUCLE: EXEC dbo.votre_procédure @nom_table print 'go' IF @@FETCH_STATUS = 0 GOTO BOUCLE CLOSE c1 DEALLOCATE c1 END else print 'Anomalie : Aucune ligne dans la requete'
Merci encore
Bonjour,
Dans votre curseur vous êtes déjà dans une boucle, donc il est inutile d'en recréer une à l'intérieur
Dans ce cas l'utilisation est acceptable, mais sachez que l'utilisation des curseurs est à proscrire parce qu'elle est contre-performante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 DECLARE @nom_table SYSNAME DECLARE c1 CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_type = 'BASE TABLE' FOR READ ONLY OPEN c1 FETCH NEXT FROM c1 INTO @nom_table WHILE @@FETCH_STATUS = 0 BEGIN PRINT '==> Script de la table ' + @nom_table EXEC dbo.votre_procédure @nom_table FETCH NEXT FROM c1 INTO @nom_table END DEALLOCATE c1
@++
Merci beaucoup pour vos informations
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager