Y a-t-il un moyen de générer le script d'un table en T-SQL ou mettre une tâche Generate Script dans une job sur le serveur. Je fonctionne avec MS SQL Server 2005.
Merci
Version imprimable
Y a-t-il un moyen de générer le script d'un table en T-SQL ou mettre une tâche Generate Script dans une job sur le serveur. Je fonctionne avec MS SQL Server 2005.
Merci
Bonjour,
Je suis actuellement en train de travailler sur un script qui se chargera à terme d'exporter dans un fichier texte le code pouvant servir à créer tous les objets d'une base de données.
Si cela vous intéresse, je ne vais pas tarder à le publier sur mon blog.
@++ ;)
Merveilleux! Je vais suivre de très près votre blog.
Merci beaucoup
Bonjour elsuket,
Avez-vous une idée à savoir quand le script sera posté sur votre blog?
Merci :)
Bonjour TCW78,
Je suis vraiment désolé pour le retard que cela a pu prendre, j'ai eu une fin d'année très mouvementée mais je vous jure que j'ai pensé à vous peu avant les vacances de Noël.
Je m'y remets ce week-end (je vais ENFIN avoir un peu de temps !) et je le publie ici et sur mon blog :aie:
@++ ;)
Bonjour,
Je viens de trouver un peu de temps pour faire ce script :
Il ne comporte pas encore les indexes :sCode:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 ------------------------------------------------------------------- -- 28/01/2009 - ElSuket -- Imprime le script de la structure et des contraintes d'une table -- utilisation : EXEC dbo.uspScripteTable 'maTable' ------------------------------------------------------------------- CREATE PROCEDURE uspScripteTable @nomTable SYSNAME AS BEGIN DECLARE @script VARCHAR(2048) SELECT @script = ISNULL(@script, '') + CHAR(9) + COLONNES.name + CASE WHEN COMPCOL.object_id IS NOT NULL THEN '' ELSE ' ' + UPPER(TYPES.name) END + '' + CASE COLONNES.is_identity WHEN 0 THEN '' WHEN 1 THEN ' IDENTITY(' + CAST(IDENT_SEED(TABLES.name) AS VARCHAR) + ', ' + CAST(IDENT_INCR(TABLES.name) AS VARCHAR) + ')' END + CASE COLONNES.is_nullable WHEN 0 THEN ' NOT NULL' WHEN 1 THEN ' NULL' END + CASE WHEN FK_COLONNES.constraint_object_id IS NULL THEN '' ELSE ' CONSTRAINT FK_' + TABLES.name + '_' + COLONNES.name + ' FOREIGN KEY (' + COLONNES.name + ') REFERENCES ' + TAB_FK.name --OBJECT_NAME(FK_COLONNES.parent_object_id) END + CASE WHEN DF.object_id IS NULL THEN '' ELSE ' CONSTRAINT DF_' + TABLES.name + '_' + COLONNES.name + ' DEFAULT ' + REPLACE(REPLACE(DF.definition, '(', ''), ')', '') END + CASE WHEN CHK.object_id IS NULL THEN '' ELSE ' CONSTRAINT CHK_' + TABLES.name + '_' + COLONNES.name + ' CHECK (' + REPLACE(REPLACE(REPLACE(REPLACE(CHK.definition, '(', ''), ')', ''), '[', ''), ']', '') + ')' END + CASE WHEN COMPCOL.object_id IS NULL THEN '' ELSE ' AS (' + REPLACE(REPLACE(REPLACE(REPLACE(COMPCOL.definition, '(', ''), ')', ''), '[', ''), ']', '') + ')' END + CASE WHEN ISNULL(INDEXES.is_primary_key, 0) = 0 THEN '' ELSE ' CONSTRAINT PK_' + TABLES.name + ' PRIMARY KEY' END + CASE WHEN ISNULL(INDEXES.is_unique_constraint, 0) = 0 THEN '' ELSE ' CONSTRAINT UQ_' + TABLES.name + '_' + COLONNES.name + ' UNIQUE' END + ',' + CHAR(10) FROM sys.tables TABLES -- Tables JOIN sys.columns COLONNES ON TABLES.object_id = COLONNES.object_id -- Colonnes JOIN sys.types TYPES ON COLONNES.user_type_id = TYPES.user_type_id -- types LEFT JOIN sys.index_columns COL_INDEX -- indexes ON COL_INDEX.object_id = COLONNES.object_id AND COL_INDEX.column_id = COLONNES.column_id LEFT JOIN sys.indexes INDEXES ON INDEXES.object_id = COL_INDEX.object_id AND INDEXES.index_id = COL_INDEX.index_id LEFT JOIN sys.default_constraints DF -- contraintes de valeur par défaut ON DF.parent_object_id = TABLES.object_id AND DF.parent_column_id = COLONNES.column_id LEFT JOIN sys.check_constraints CHK -- contraintes CHECK ON CHK.parent_object_id = TABLES.object_id AND CHK.parent_column_id = COLONNES.column_id LEFT JOIN sys.computed_columns COMPCOL -- colonnes calculées ON COMPCOL.column_id = COLONNES.column_id AND COMPCOL.object_id = TABLES.object_id LEFT JOIN sys.foreign_key_columns FK_COLONNES ON FK_COLONNES.parent_object_id = TABLES.object_id AND FK_COLONNES.parent_column_id = COLONNES.column_id LEFT JOIN sys.columns COL_FK ON FK_COLONNES.referenced_object_id = COL_FK.object_id AND FK_COLONNES.referenced_column_id = COL_FK.column_id LEFT JOIN sys.tables TAB_FK ON COL_FK.object_id = TAB_FK.object_id WHERE TABLES.name = @nomTable SELECT @script = 'CREATE TABLE ' + @nomTable + CHAR(10) + '(' + CHAR(10) + SUBSTRING(@script, 1, LEN(@script) - 2) + CHAR(10) + ')' + CHAR(10) PRINT @script END
@++ ;)