Besoin de générer rapidement des instructions CREATE TABLE
pour vos tables SQL Server existantes ? Ce guide montre comment y parvenir à l'aide d'une requête, en exploitant des tables système telles que sys.tables
.
Une méthode consiste à créer une instruction SQL dynamique. La structure de base commence ainsi :
<code class="language-sql">DECLARE @sql NVARCHAR(MAX) = 'CREATE TABLE [' + @table_name + '] (';</code>
Cela construit dynamiquement la partie initiale de l'instruction CREATE TABLE
, en remplaçant @table_name
par le nom réel de la table.
Ensuite, vous ajouterez les détails de la colonne : nom, type de données, longueur, nullabilité et éventuelles contraintes. Voici un exemple pour une colonne VARCHAR
nommée CustomerName
:
<code class="language-sql">@sql += CHAR(9) + ', [' + c.name + '] ' + UPPER(tp.name) + ' (' + CASE WHEN c.max_length = -1 THEN 'MAX' ELSE CAST(c.max_length AS VARCHAR(5)) END + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END + CHAR(13);</code>
Cet extrait ajoute la définition de la colonne, en gérant MAX
les longueurs de manière appropriée et en spécifiant la nullité. Vous répéteriez cela pour chaque colonne.
Enfin, vous ajouterez des contraintes de clés primaires et étrangères. Après avoir construit l'instruction CREATE TABLE
complète, utilisez :
<code class="language-sql">PRINT CAST(@sql AS NTEXT);</code>
pour afficher le script généré. Notez que le script exact variera en fonction de la structure et des contraintes spécifiques de votre table.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!