

# PREPARE
<a name="sql-prepare"></a>

後で実行するために、名前 `statement_name` で SQL ステートメントを作成します。ステートメントには、疑問符で表されるパラメータを含めることができます。パラメータの値を指定してプリペアドステートメントを実行するには、[EXECUTE](sql-execute.md) を使用します。

## 概要
<a name="sql-prepare-synopsis"></a>

```
PREPARE statement_name FROM statement
```

次の表は、パラメータの説明です。


****  

| パラメータ  | 説明 | 
| --- | --- | 
| statement\_name | 準備されるステートメントの名前です。この名前は、ワークグループ内で一意である必要があります。 | 
| statement | SELECT、CTAS、または INSERT INTO クエリです。 | 

**注記**  
ワークグループ内の準備済みステートメントの最大数は 1,000 です。

## 例
<a name="sql-prepare-examples"></a>

次の例では、パラメータなしで選択クエリを準備します。

```
PREPARE my_select1 FROM 
SELECT * FROM nation
```

次の例では、パラメータを含む選択クエリを準備します。`productid` および `quantity` の値は、`EXECUTE` ステートメントの `USING` 句によって指定されます。

```
PREPARE my_select2 FROM 
SELECT order FROM orders WHERE productid = ? and quantity < ?
```

次の例では、挿入クエリを準備します。

```
PREPARE my_insert FROM 
INSERT INTO cities_usa (city, state) 
SELECT city, state 
FROM cities_world 
WHERE country = ?
```

## 追加リソース
<a name="sql-prepare-additional-resources"></a>

[プリペアドステートメントを使用する](querying-with-prepared-statements-querying.md)

[EXECUTE](sql-execute.md)

[DEALLOCATE PREPARE](sql-deallocate-prepare.md)

[INSERT INTO](insert-into.md)