▶️
SQLのテーブルを制約ごと複製する方法
テーブルのコピー方法例
制約ごとコピー
- 複製元のテーブルをスクリプト化
- スクリプトをコピー
CREATE TABLE部分のNEW_TABLE_NAMEを新しく作るテーブル名に変更してSQL上で実行
これで制約を持ったテーブルが作成される
USE [DB_NAME]
GO
/****** Object: Table [dbo].[TABLE_A] Script Date: 2023/12/26 17:33:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[NEW_TABLE_NAME](
[AAA] [char](1) NOT NULL,
[BBB] [char](6) NOT NULL,
[CCC] [smallint] NOT NULL,
[DDD] [smalldatetime] NOT NULL,
[EEE] [char](8) NOT NULL,
[FFF] [char](1) NOT NULL,
[GGG] [char](1) NOT NULL,
[HHH] [char](8) NULL,
[III] [varchar](60) NULL,
[JJJ] [varchar](40) NULL,
[KKK] [varchar](40) NULL,
[LLL] [varchar](60) NULL,
[MMM] [varchar](60) NULL,
[NNN] [varchar](13) NULL,
) ON [PRIMARY]
GO
- データを挿入[1]
INSERT INTO dbo.NEW_TABLE_NAME
SELECT * FROM dbo.TABLE_A
制約を除く要素のみをコピー
SELECT INTO * FROM TABLE_A
-
3実行時に作成したはずのテーブル名が無効と言われることがある。更新しても直らないがアプリ再起動でOK。 ↩︎
Discussion