SQL CREATE-Skript mit Abfrage zum Generieren einer vorhandenen Tabelle
Während diese Abfrage selbst nicht direkt ein CREATE-Skript generiert, kann sie aus in SQL Server gespeicherten Schemainformationen abgeleitet werden.
Methode:
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>
Ausgabebeispiel:
<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>
Das obige ist der detaillierte Inhalt vonWie kann ich SQL CREATE-Tabellenskripte aus vorhandenen Tabellen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!