Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menjana Skrip Jadual SQL CREATE daripada Jadual Sedia Ada?
skrip SQL CREATE menggunakan pertanyaan untuk menjana jadual sedia ada
Walaupun pertanyaan ini sendiri tidak menjana skrip CREATE secara langsung, ia boleh diperoleh daripada maklumat skema yang disimpan dalam SQL Server.
Kaedah:
Kod:
<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>
Contoh output:
<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>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Skrip Jadual SQL CREATE daripada Jadual Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!