Maison >base de données >tutoriel mysql >Comment puis-je générer des scripts de table SQL CREATE à partir de tables existantes ?
Script SQL CREATE utilisant une requête pour générer une table existante
Bien que cette requête elle-même ne génère pas directement un script CREATE, elle peut être dérivée des informations de schéma stockées dans SQL Server.
Méthode :
Code :
<code class="language-sql">DECLARE @table_name SYSNAME = 'dbo.MyTable'; DECLARE @DDL NVARCHAR(MAX) = 'CREATE TABLE ' + QUOTENAME(@table_name) + ' ('; SELECT @DDL += CHAR(13) + ' [' + c.name + '] ' + CASE WHEN c.is_nullable = 1 THEN 'NULL' ELSE 'NOT NULL' END + ',' FROM sys.columns c WHERE c.[object_id] = OBJECT_ID(@table_name); SET @DDL = LEFT(@DDL, LEN(@DDL) - 1) + ')'; SELECT @DDL += CHAR(13) + ' CONSTRAINT [PK_' + @table_name + '] PRIMARY KEY (' + STUFF((SELECT ', [' + c.name + ']' FROM sys.index_columns c WHERE c.[object_id] = OBJECT_ID(@table_name) AND c.index_id = 1), 1, 2, '') + ')'; SELECT @DDL += CHAR(13) + ' WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF);'; PRINT @DDL;</code>
Exemple de sortie :
<code class="language-sql">CREATE TABLE [dbo].[MyTable] ( [ID] INT NOT NULL, [Name] VARCHAR(50) NULL, [Age] INT NULL, CONSTRAINT [PK_MyTable] PRIMARY KEY ([ID]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF);</code>
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!