データベースエンジンツール (SQLCMD) を使ってテーブルとデータのCREATE SQLスクリプトを生成する方法
SQL ServerでテーブルとデータのCREATE SQLスクリプトを生成するには、いくつかの方法があります。
方法
- SQL Server Management Studio (SSMS)
SSMSは、SQL Serverを管理するためのツールです。SSMSを使用して、テーブルとデータのCREATE SQLスクリプトを簡単に生成できます。
手順
- SSMSを起動し、SQL Serverインスタンスに接続します。
- オブジェクトエクスプローラーで、テーブルを作成するデータベースを選択します。
- データベースを右クリックし、「タスク」>「スクリプトの生成」を選択します。
- 「スクリプトの生成」ウィザードで、次のオプションを選択します。
- オブジェクトの種類: テーブル
- 詳細オプション: スクリプトにデータを含める
- 次へをクリックします。
- 生成するスクリプトのオプションを選択します。
- T-SQL
T-SQLを使用して、テーブルとデータのCREATE SQLスクリプトを手動で生成することもできます。
例
CREATE TABLE dbo.MyTable (
Id INT NOT NULL IDENTITY(1,1),
Name VARCHAR(50) NOT NULL,
Age INT NULL
);
INSERT INTO dbo.MyTable (Name, Age)
VALUES ('John Doe', 30),
('Jane Doe', 25);
この例では、MyTable
という名前のテーブルを作成し、2つのデータ行を挿入します。
- サードパーティ製ツール
テーブルとデータのCREATE SQLスクリプトを生成するために使用できるサードパーティ製ツールもいくつかあります。
ツール
- SQL Data Generator
- ApexSQL Script
これらのツールは、SSMSやT-SQLよりも多くの機能を提供する場合があります。
-- テーブル作成
CREATE TABLE dbo.Customers (
Id INT NOT NULL IDENTITY(1,1),
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(100) NOT NULL,
Age INT NULL
);
-- データ挿入
INSERT INTO dbo.Customers (FirstName, LastName, Email, Age)
VALUES
('John', 'Doe', '[email protected]', 30),
('Jane', 'Doe', '[email protected]', 25),
('Peter', 'Smith', '[email protected]', 40);
説明
Id
列は、自動的に生成される主キーです。FirstName
列とLastName
列は、顧客の名前を保存します。Email
列は、顧客のメールアドレスを保存します。Age
列は、顧客の年齢を保存します。
このスクリプトは、ニーズに合わせて変更できます。
その他のテーブルとデータのCREATE SQLスクリプト生成方法
概要
- コマンドプロンプトを開きます。
- 次のコマンドを実行します。
sqlcmd -S <サーバー名> -d <データベース名> -Q "SET NOCOUNT ON; SELECT * FROM <テーブル名> FOR XML PATH('');" > <スクリプトファイル名>.sql
sqlcmd -S localhost -d AdventureWorks2019 -Q "SET NOCOUNT ON; SELECT * FROM Person.Contact FOR XML PATH('');" > contact.sql
PowerShell
- PowerShellを起動します。
$server = 'localhost'
$database = 'AdventureWorks2019'
$table = 'Person.Contact'
$query = @"
SET NOCOUNT ON;
SELECT *
FROM $table
FOR XML PATH('');
"@
$connection = New-Object System.Data.SqlClient.SqlConnection("Data Source=$server;Initial Catalog=$database;Integrated Security=True")
$connection.Open()
$command = New-Object System.Data.SqlClient.SqlCommand($query, $connection)
$reader = $command.ExecuteReader()
$xml = $reader.Read() | Out-File -FilePath contact.sql
$reader.Close()
$connection.Close()
sql-server